Threads!
After doing jstack -l
on the running application, I was able to see that a bunch of threads were being blocked by the object lock I created on the asyncTransaction
function.
The purpose of that function is to execute SQLite commands at some point in the future, and in order. What was happening is that a bunch of these were being requested at once and the lock was throwing exceptions, this would create an influx of threads and none of them could complete.
Instead let's create a queue with a single thread executor.