Open joshmoore opened 3 years ago
With the research that is going into #154, specifically looking at the jstack output from @JulianHn on the image.sc thread, I believe at least part of the issue here is a bug with ome.services.pixeldata.PixelDataThread#doRun()
when handling exceptional execution conditions. The current code looks like this:
You will notice that the while loop starting on line 256 has a completion condition count > 0
and in the line above the count is set to the number of event logs that were submitted for processing. If one of those event log processing tasks completes exceptionally calling future.get()
will throw an ExecutionException
^1 which will then be caught and handled by onExecutionException()
. Unfortunately, when this happens count
is not decremented and the while loop will proceed indefinitely resulting in no new event logs being processed.
I think we can fix this easily enough while dealing with #154.
Edit: If an InterruptedException
is thrown somewhere and caught it will not cause the count
to be decremented.
/cc @jburel, @erickmartins, @perlman
see: https://forum.image.sc/t/pixeldata-threads-and-pyramid-generation-issues/49794