Syncleus / aparapi

The New Official Aparapi: a framework for executing native Java and Scala code on the GPU.

Home Page:http://aparapi.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.