Ticket #176 (closed defect: fixed)

Opened 7 years ago

Last modified 7 years ago

Race condition in war test driver / build all libraries before running tests.

Reported by: benl Owned by:
Priority: normal Milestone:
Component: Build System Version:
Keywords: Cc:


When running the war test driver with 8 threads, the programs in `test/93-Graphics' frequently fail the first time, but work fine if I run war again.

I expect this is because building these tests also causes stuff in library/Graphics to get built, and if we try to build the graphics stuff concurrently, more than once, it'll die.

The cheap way to fix this would just be to ensure that all of the libraries get built before running the tests.

The more expensive way would be to somehow lock source files when they're being compiled, which might be a good idea for other reasons as well. However after reading some of the problems mentioned on http://en.wikipedia.org/wiki/File_locking I'm not sure this would be worth it in the long run. The line "Whether flock locks work on network filesystems, such as NFS, is implementation-dependent." makes me particularly sad.

Change History

Changed 7 years ago by benl

  • status changed from new to closed
  • resolution set to fixed

We now build all the libraries before running tests.

Note: See TracTickets for help on using tickets.