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.