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
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to