Salesforce

PASOE defunct child processes bound to msagent

« Go Back

Information

 
TitlePASOE defunct child processes bound to msagent
URL Namemany-defunct-processes-bound-to-msagent
Article Number000154291
EnvironmentProduct: OpenEdge
Version: 11.7.5
OS: UNIX
Question/Problem Description
Using ABL calls to operation system commands accumulates defunct child processes bound to  _mproapsv
Defunct or Zombie child processes bound to the PASOE MSAgent accumulate over time when using ABL calls to operation system commands
Over time ps listing shows many defunct or zombie processes bound to the PASOE MSAgent

Defunct processes are os calls: /sbin/sh -c sendmail
Some defunct processes have defunct sub processes bound like a command to cancel a unix printjob: /sbin/sh -c cancel -e 703wtag 
None of the defunct processes are orphaned (bound to INIT PID 1)

Example: Defunct Child Process bound to _mproapsv
UID      PID              PPID            C    STIME       TTY         TIME   CMD
userid    61227926 5046636      0   08:07:23  pts/453   0:079 /dlc/bin/_mproapsv
userid    62802696 61227926    0                                  0:00   <defunct> 

 
Steps to Reproduce
Clarifying Information
1. Reduce the tomcat execution pool to 3
2. Start 100 sessions call the test code to call sendmail:

$   sh runclient.sh clsendmail.p 100
#  runclient.sh
#!/bin/sh
test=$1
nClients=$2
echo "CLIENT prog =>" $pfile
echo "NUM CLIENTS =>" $nClients
count=0
while :
do
count=`expr $count + 1`
$PROEXE -p $test -b >x_$count.out &
if [ $count -gt $nClients ]; then
break
fi
echo "count == $count"
done
Test code: clsendmail.p
 
DEFINE STREAM msg.
OUTPUT STREAM msg THROUGH /usr/sbin/sendmail '<email>' NO-ECHO.

PUT STREAM msg unformatted
'Subject: pasmail Test' skip.
OUTPUT STREAM msg CLOSE.

QUIT.

 
Error Message
Defect NumberOCTA-20146
Enhancement Number
Cause
The exact cause is not known at this time.
Resolution
None at this time.
Workaround
To initially recover the situation:
  1. Stop the PASOE instance
  2. KILL off PIDs for the affected MSAgents
  3. Restart the PASOE instance
Upgrade to OpenEdge 11.7.6 where a related issue was addressed when using OS system calls in PASOE multi-CPU environments (ADAS-22626), which has been shown to alleviate the situation.

The amount of time for the MSAgent to sleep has been changed to use nanosleep () to sleep at a constant 100 nanosecond duration (0.0001 millisecond) 
Notes
Keyword Phrase
Last Modified Date2/15/2023 5:48 PM

Powered by