Follow-up Comment #9, bug #15719 (project make):
With cvs HEAD (as of 2012-12-09), I've seen TEST #11 ("thing1,thing2
start,end") sometimes failing, even without so much load on the Linux build
machine, where the diff output shows /missing/ lines.
Extracting this test and running in a loop with strace (test script attached)
shows the situation when output lines get lost:
When those two shells running the "echo thingX start; sleep 1; echo thingX
end" command do the write(1, "thingX ...") syscall (because echo being a
shell-builtin) at the same time (on different cores), one of the line is
overwritten by the other one.
However, I've seen this happening when the output is redirected to a file
only.
So indeed the tests seem fragile, for these two reasons:
1) It does expect the output lines from concurrent processes in a particular
order.
2) It does expect the output lines from concurrent processes redirected to one
stream to not overwrite each other.
But I've failed to find a spec about how the content is expected to be merged
when multiple processes concurrently write to a single file descriptor...
(file #27084)
_______________________________________________________
Additional Item Attachment:
File name: makebug-15719-test11.sh Size:0 KB
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?15719>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make