: Ok, I expected something like this. Why are some test timing related? Are 
there any informations about this.

multi-threaded code.  

In the extreme case, Test falures may be timing related due to buggy race 
conditions between multiple threads in "real code" (ie: very problematic 
for end users).

More typically what we see is race conditions between a thread in "real 
code" and a thread in "test code" (ie: a badly written test that doesn't 
harm any production user but is anoying to track down).

Timing factors betwen machines can also cause reproducibility problems in 
randomization logic -- the test framework tries to ensure every thread 
get's it's own consistent 'Random', but if there are multiple test threads 
that both interact with something (ie: a single SolrCore in a stress 
test), the order those threads are scheduled by the VM determines the 
order that the random values from each of those threads come into play -- 
ie: the order that 2 diff (random) updates from 2 diff threads hit solr, 
potentially triggering a bug in some situations (ie: maybe a certain 
ordering of updates).

other example of how  "timing" can cause reproducibility problems is in 
unpredictible ordering in lists which are then used to select things at 
random...

Example: maybe there is a bug with shutting down nodes that only manifests 
if the "leader" replica of a collection is being shutdown -- a 
(correctly written) test that might be garunteed that the 
seed DEADBEEF will cause it to always spin 
up exact 5 nodes and shutdown the 2nd node in the list -- but thread 
scheduling during collection creation may cause the 1st node in the list 
to _usually_ host the leader, but on rare occasion that 2nd node might 
host the leader because of which thread joined the election first.


...these are just some examples off the top of my head based on years of 
experience reading test logs ... and that's before we even talk about the 
possiblity/anoyance of actual race conditions/deadlocks in code, that 
might only trigger on slow machines (or fast machines) based on thread 
scheduling ... assuming we even have a test that causes those particular 
threads to try and run at the same time :)


-Hoss
http://www.lucidworks.com/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to