ErrorReportingSpec: fails to tear down actorsystem with `Boxed InterruptedException`
- Dominant language
- Scala
- Stars
- 55
- Forks
- 30
- Avg merge
- 23h 12m
- Merged PRs (30d)
- 34
Description
```
Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
[WARN] [12/12/2024 09:17:34.140] [default-pekko.actor.internal-dispatcher-18] [CoordinatedShutdown(pekko://default)] Task [terminate-system] failed in phase [actor-system-terminate]: Boxed InterruptedException
```
```
[info] ErrorReportingSpec:
[info] A gRPC server
[info] - should respond with an 'unimplemented' gRPC error status when calling an unknown method (532 milliseconds)
[info] - should respond with an 'invalid argument' gRPC error status when calling an method without a request body (22 milliseconds)
[INFO] [12/12/2024 09:17:34.084] [pool-1-thread-1] [CoordinatedShutdown(pekko://default)] Running CoordinatedShutdown with reason [ActorSystemTerminateReason]
[WARN] [12/12/2024 09:17:34.140] [default-pekko.actor.internal-dispatcher-18] [CoordinatedShutdown(pekko://default)] Task [terminate-system] failed in phase [actor-system-terminate]: Boxed InterruptedException
[info] example.myapp.helloworld.ErrorReportingSpec *** ABORTED *** (746 milliseconds)
[info] java.util.concurrent.ExecutionException: Boxed InterruptedException
[info] at scala.concurrent.impl.Promise.completeWithFailure(Promise.scala:34)
[info] at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:42)
[info] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:74)
[info] at org.apache.pekko.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:73)
[info] at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:110)
[info] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[info] at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:85)
[info] at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:110)
[info] at org.apache.pekko.dispatch.TaskInvocation.run(AbstractDispatcher.scala:59)
[info] at org.apache.pekko.dispatch.ForkJoinExecutorConfigurator$PekkoForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:61)
[info] at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
[info] at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
[info] at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
[info] at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
[info] at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
[info] Cause: java.lang.InterruptedException:
[info] at java.base/java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1133)
[info] at scala.concurrent.impl.Promise$DefaultPromise.tryAwait(Promise.scala:258)
[info] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:268)
[info] at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:273)
[info] at scala.concurrent.Await$.$anonfun$result$1(package.scala:223)
[info] at org.apache.pekko.dispatch.MonitorableThreadFactory$PekkoManagedBlocker.block(ThreadPoolBuilder.scala:192)
[info] at java.base/java.util.concurrent.ForkJoinPool.compensatedBlock(ForkJoinPool.java:3740)
[info] at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3723)
[info] at org.apache.pekko.dispatch.MonitorableThreadFactory$PekkoForkJoinWorkerThread.blockOn(ThreadPoolBuilder.scala:204)
[info] at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.blockOn(BatchingExecutor.scala:126)
[info] at scala.concurrent.Await$.result(package.scala:146)
[info] at org.apache.pekko.actor.LightArrayRevolverScheduler.close(LightArrayRevolverScheduler.scala:176)
[info] at org.apache.pekko.actor.ActorSystemImpl.stopScheduler(ActorSystem.scala:1136)
[info] at org.apache.pekko.actor.ActorSystemImpl.$anonfun$_start$1(ActorSystem.scala:1041)
[info] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[info] at org.apache.pekko.actor.ActorSystemImpl$$anon$2.run(ActorSystem.scala:1063)
[info] at org.apache.pekko.actor.ActorSystemImpl$TerminationCallbacks$$anonfun$addRec$1$1.applyOrElse(ActorSystem.scala:1295)
[info] at scala.concurrent.Future.$anonfun$andThen$1(Future.scala:536)
[info] at scala.concurrent.impl.Promise.$anonfun$transform$1(Promise.scala:42)
[info] at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:74)
[info] at org.apache.pekko.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:73)
[info] at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.$anonfun$run$1(BatchingExecutor.scala:110)
[info] at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:23)
[info] at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:85)
[info] at org.apache.pekko.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:110)
[info] at org.apache.pekko.dispatch.TaskInvocation.run(AbstractDispatcher.scala:59)
[info] at org.apache.pekko.dispatch.ForkJoinExecutorConfigurator$PekkoForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:61)
[info] at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:387)
[info] at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312)
[info] at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843)
[info] at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808)
[info] at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188)
```
Contributor guide
Research direction
Start by reproducing ErrorReportingSpec and inspect its actor-system teardown around CoordinatedShutdown. Trace the terminate-system failure and the InterruptedException shown in the stack trace. Done means ErrorReportingSpec completes without aborting and the actor system terminates without the warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, scala
- Domain
- testing
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100