[PATCH] posix/tst-spawn: Fix racy tests in spawned processes.

Stefan Liebler stli@linux.ibm.com
Mon Jan 28 13:41:00 GMT 2019


Hi,

from time to time I get fails in tst-spawn like:
tst-spawn.c:111: numeric comparison failure
    left: 0 (0x0); from: xlseek (fd2, 0, SEEK_CUR)
   right: 28 (0x1c); from: strlen (fd2string)
error: 1 test failures
tst-spawn.c:252: numeric comparison failure
    left: 1 (0x1); from: WEXITSTATUS (status)
   right: 0 (0x0); from: 0
error: 1 test failures

It turned out, that a child process is testing it's open file 
descriptors with e.g. a sequence of testing the current position, 
setting the position to zero and reading a specific amount of bytes.

Unfortunately starting with commit 
2a69f853c03034c2e383e0f9c35b5402ce8b5473 the test is spawning a second 
child process which is sharing some of the file descriptors.  If the 
test sequence as mentioned above is running in parallel it leads to test 
failures.

As the second call of posix_spawn shall test a NULL pid argument, this 
patch is just moving the waitpid of the first child before the 
posix_spawn of the second child.

Okay for commit?
(I assume 2.30)

Bye,
Stefan

ChangeLog:

	* posix/tst-spawn do_test(): Move waitpid before posix_spawn.



More information about the Libc-alpha mailing list