You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hello. We are encountering the problem of some tasks getting stuck on extremely rare occasions. The thread dump did not reveal any obviously blocked threads in our code base. However, we found that an uncaught error reporter reported the following NPE:
java.lang.NullPointerException
at monix.eval.internal.TaskRestartCallback.run(TaskRestartCallback.scala:65)
at monix.execution.internal.Trampoline.monix$execution$internal$Trampoline$$immediateLoop(Trampoline.scala:66)
at monix.execution.internal.Trampoline$ResumeRun$1.run(Trampoline.scala:51)
at monix.execution.schedulers.TracingRunnable.run(TracingRunnable.scala:33)
at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1426)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:177)
I'm not sure but I suspect that the scheduled TaskRestartCallback was executed multiple times.
I have not yet been able to create a minimal reproduction environment, but there is a place in our code where we are using scala.concurrent.blocking and it may have something to do with it.
The blocking context may cause forkTheRest to be invoked. Is this a thread-safe implementation?
Since ChunkedArrayQueue does not appear to be thread-safe, isn't it dangerous to potentially reference it from other threads?
I am not very familiar with the code inside monix, so it is very possible that I am misunderstanding something, but in any case, I am sure that something strange is going on and I would appreciate your help in finding out the cause.
The text was updated successfully, but these errors were encountered:
Hello. We are encountering the problem of some tasks getting stuck on extremely rare occasions. The thread dump did not reveal any obviously blocked threads in our code base. However, we found that an uncaught error reporter reported the following NPE:
I'm not sure but I suspect that the scheduled
TaskRestartCallback
was executed multiple times.monix/monix-eval/shared/src/main/scala/monix/eval/internal/TaskRestartCallback.scala
Lines 63 to 67 in de87984
I have not yet been able to create a minimal reproduction environment, but there is a place in our code where we are using
scala.concurrent.blocking
and it may have something to do with it.monix/monix-execution/shared/src/main/scala/monix/execution/internal/Trampoline.scala
Lines 46 to 61 in de87984
The blocking context may cause
forkTheRest
to be invoked. Is this a thread-safe implementation?Since
ChunkedArrayQueue
does not appear to be thread-safe, isn't it dangerous to potentially reference it from other threads?I am not very familiar with the code inside monix, so it is very possible that I am misunderstanding something, but in any case, I am sure that something strange is going on and I would appreciate your help in finding out the cause.
The text was updated successfully, but these errors were encountered: