Consultor Eletrônico



Kbase P134644: Progress client _progres left running after terminal session has been disconnected
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   08/10/2008
Status: Unverified

SYMPTOM(s):

Progress client _progres left running after terminal session has been disconnected

Process list shows remaining _progres processes

Stale processes do not respond to signals SIGTERM, SIGHUP, SIGABRT

Processes can be terminated with SIGKILL

FACT(s) (Environment):

Running TTY application on remote Unix server
Server handles more than 200 concurrent terminal sessions

OpenEdge 10.x
UNIX

CAUSE:

Bug# OE00170971

CAUSE:

Progress client is vulnerable to a race condition involving signal handling and memory handling, which can leave it in an unspecified state when submitted to a specific set of circumstances.

In some circumstances when a Progress client (_progres, _proapsv, ...) receives a signal it runs a signal handler which in turns may call malloc / free.

On AIX and HP-UX (tested, other platforms not tested), if the signal was received *while* malloc or free were running, this causes a deadlock (hanging process) a crash (SIGBUS or SIGSEGV due to malloc / free changing structures improperly), or simply memory corruption that goes undetected until a later time.


FIX:

Upgrade to OpenEdge 10.1C02 Service Pack
or
As a workaround, send SIGKILL to the processes once the database has shut down completely.