[Ecls-list] does ECL ever fork itself?

Anton Vodonosov avodonosov at yandex.ru
Sat Nov 9 17:14:07 UTC 2013


When we observed the child process, it was /usr/local/bin/ecl,
so if we assume it was forked to invoke C compiler, then it hung
before 'exec'.

I saw in src/sys/unixsys.d that ECL when forks itself
first coordinates the parent and child processes by
reading writing a byte to a pipe in the parent,
and reading this byte in the child. Only after this
the child calls 'exec[ve|vp]'. This coordination
is necessary to allow the parent to finish initializing
the 'process' structure representing the child.

So, a possible explanation of hanging child process
is that the parent was killed by test-grid-agent
right before it has written to byte to the child.

It's just a guess, but the problem is a bit difficult
to reproduce. We saw just several times from many attempts.

What would be the best way to debug such situation
if we encounter it in the futurer?
Create a core dump of the hangin ECL?
Should it be compiled with debug information,
or normally compiled ECL is enough to analyze the core dump?

Best regards,
- Anton





More information about the ecl-devel mailing list