You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
AIX: test-child-process-pass-fd.js processes still running #9255
Looks like test-child-process-pass-fd.js is leaving processes behind on AIX. We were seeing failures in other tests runs due to fork failing and this may be related.
Latest run seems ok after I cleaned up the machine. Will leave this open and check if we see re-occurrences of the processes hanging around over the next few days.
I confirmed that test leaks child processes on unexpected exit of the parent by throwing after 30 workers (simulating a fork failure). So, if fork fails and errors part way through the 80 children, the parent will exit, and workers will leak.
I tried to fix this in the child with the process.on('disconnect', ()=> process.exit(1)) trick, no luck, I'll try something else.
I suspect that the process.on('disconnect', ... was not working because AIX doesn't schedule time for its children to run after being forked if the parent is still busy. I refed the IPC channel (and unrefed the sockets) instead.
Activity
mhdawson commentedon Oct 24, 2016
They all seemed to be from Oct 21st so possibly from a stress run ? There were also no processes hanging around on test-osuosl-aix61-ppc64_be-1
mhdawson commentedon Oct 24, 2016
Latest run seems ok after I cleaned up the machine. Will leave this open and check if we see re-occurrences of the processes hanging around over the next few days.
sam-github commentedon Oct 24, 2016
I confirmed that test leaks child processes on unexpected exit of the parent by throwing after 30 workers (simulating a fork failure). So, if fork fails and errors part way through the 80 children, the parent will exit, and workers will leak.
I tried to fix this in the child with the
process.on('disconnect', ()=> process.exit(1))trick, no luck, I'll try something else.sam-github commentedon Oct 24, 2016
I suspect that the
process.on('disconnect', ...was not working because AIX doesn't schedule time for its children to run after being forked if the parent is still busy. I refed the IPC channel (and unrefed the sockets) instead.@mhdawson Maybe #9257 will fix this.
test: prevent workers outliving parent
test: prevent workers outliving parent
test: prevent workers outliving parent