So, I took a little time to give this a fresh look over...

On Wed, Oct 23, 2019 at 11:01:44AM -0400 I heard the voice of
Stefan Monnier, and lo! it spake thus:
> 
> So the test encounters the same problem yet it passes.

The root of this is that "test passing" is "our test process exited
0", and we don't watch m4's exit code.  Whether we _should_ is another
question...


>     3: /usr/bin/m4: syscmd subprocess: No child processes
>     3: /usr/bin/m4:/tmp/monnier/ctwmrc.XXAiGjku:31: cannot run command 
> `/bin/rm /tmp/monnier/ctwmrc.XXAiGjku': No child processes
> 
> BTW, an interesting detail: there's no /tmp/monnier/ctwmrc.* file left
> over, despite that message!

What's interesting here is that, in some testing, I couldn't make
anything fail this way, even using GNU m4 (which I assume you're
using, and matches those messages).  And those messages seem to point,
not at "can't run rm" (which it apparently does, and is why the file
is gone), but more along the lines of "can't reap rm process"; the 'No
child process' seems to be a perror() you can get from a failure in
waitpid(), when SIGCHLD is being ignored.

So, maybe the m4 process is inheriting our SIG_IGN there, and isn't
prepared for that to be the case?  You could try commenting out the
ignore in signals.c and see if that makes a diff (don't run your
desktop with a ctwm like that, of course, but for testing and/or using
the test_m4 like above...  :)



-- 
Matthew Fuller     (MF4839)   |  [email protected]
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.

Reply via email to