Description
While investigating some odd jenkins failures from TriggerSetPropertiesIntegrationTest, I'm left with the conclusion that as implemented, the test was susceptible to order of operation bugs due to how the multiple threads would access a static non-final non-volatile CountdownLatch for keeping track of when/if anough iterations had past – based on the (limited) logging that was being produced, it seemed like thescheduled threads were picing up the "first" new CountdownLatch(1) assigned to that variable, even though the test expected it to use the second new CountdownLatch(2)
It's possible that just marking this variable volatile would have prevented these failures – but as designed the test was also very dependent on arbitrary sleep() delays, so instead i've redisgned it to use differnet signaling mechanisms using await() calls on concurrent signal structures.
Opening this issue to track these test improvements and any subsequent tweaks needed
Attachments
Attachments
Issue Links
- relates to
-
SOLR-13068 many cloud/autoscaling tests are using System.currentTimeMillis() for timing comparisons (under the covers)
-
- Closed
-