-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Message #waitForExit doesn’t always return when the process has terminated #73
Comments
Here’s sample output from a run using Pharo 11 in which the problem also occurred: the ‘curl’ process with PID 13026 has terminated, but the output is not showing a corresponding
|
After adding this to also log the sends of
We get output on our Jenkins server as shown below. After the last
Sample output:
|
We’re having a problem on our Jenkins server: test runs often hang. It seems to be related to OSSubprocess. I tried to capture it in a small example:
https://github.com/Rinzwind/OSSubprocessTest
The example:
TestRequestHandler>>#handleFiltered:
)#checkFinishedChildren
(see:BaselineOfTest>>#postLoad
)TestTestCase>>#test
)Below is a sample from the output we get on our Jenkins server. It shows that the test hangs:
Did #run (m: 2542, pid: 6480)
shows that a ‘curl’ process was spawned with PID 64806480 Z 00:00:00 \_ curl <defunct>
from the ‘ps’ command show that that process has terminated but that its status has not been consumed yet (it’s a zombie process)Did #waitForExit (m: 2542)
showing a return from#waitForExit
Note there’s also no more line
Will #checkFinishedChildren
after the lastDid #run
. As far as I understand, the child watcher in OSSVMProcess should be sending#checkFinishedChildren
at least once a second:OSSubprocess/repository/OSSubprocess/OSSVMProcess.class.st
Lines 234 to 244 in 67ded10
So far I’ve only been able to reproduce this on our Jenkins server though, making it a little hard to debug.
Sample output:
The text was updated successfully, but these errors were encountered: