Deadlock running integration test ProfileReportBackwardsCompatTest.sequentialSingleThreadJTPTest()
CoreRasurae opened this issue · comments
It looks like some of the threads die during kernel execution, at least there should be 16 threads and I only have 7 running and they are all waiting on a CyclicBarrier on KernelRunner.await() line 331 called from KernelRunner.access() line 679 called from KernelRunner.run() line 663. Could it be some exception that is thrown that makes the threads die and then there aren't enough parties for the CyclicBarrier to unlock?
It happened running sequentialSingleThreadJTPTest().
I am able to reproduce the bug before the feature was merged at commit cd911b9 - test: added another test showing out of scope error.
With the attached test -
ProfileReportBackwardsCompatTest.java.txt
I was also able to reproduce the bug with aparapi releases 1.4.1 and 1.6.0.
@CoreRasurae Thanks.. I am worried this might be a tricky one to catch, particularly since it has yet to occur for me locally, only on travis. But ill keep poking around and see what i come up with.
pitest might be useful here to discover test deficiencies http://pitest.org/
@automenta i got them to use pitest at comcast. Its slow but can be useful
@freemo I think the easiest way to reproduce the problem is to run it on a dual core machine, where the number of cores are restricted. KernelRunner ForkJoinPool thread number is bound to the number of processors.
This bug has been resolved, closing.