cats-effect
cats-effect copied to clipboard
Nondeterministic failures in `DispatcherSpec`
Seems to happen much more often in CI. I have yet to reproduce locally. Example output:
[error] sbt.ForkMain$ForkError: java.lang.NullPointerException: null
[error] at org.specs2.reporter.TextPrinter.printSkipped(TextPrinter.scala:181)
[error] at org.specs2.reporter.TextPrinter.printSkipped$(TextPrinter.scala:178)
[error] at org.specs2.reporter.TextPrinter$.printSkipped(TextPrinter.scala:292)
[error] at org.specs2.reporter.TextPrinter.printResult$1(TextPrinter.scala:130)
[error] at org.specs2.reporter.TextPrinter.printExecutable(TextPrinter.scala:146)
[error] at org.specs2.reporter.TextPrinter.printExecutable$(TextPrinter.scala:118)
[error] at org.specs2.reporter.TextPrinter$.printExecutable(TextPrinter.scala:292)
[error] at org.specs2.reporter.TextPrinter.$anonfun$printFragment$2(TextPrinter.scala:100)
[error] at org.specs2.control.eff.Arrs.$anonfun$map$2(Eff.scala:368)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:383)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.Interpret.$anonfun$interpretLoop$11(Interpret.scala:198)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.CollectedUnions.$anonfun$othersEff$1(Unions.scala:97)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:383)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.Interpret.$anonfun$interpretLoop$11(Interpret.scala:198)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.CollectedUnions.$anonfun$othersEff$1(Unions.scala:97)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.Interpret.$anonfun$interpretLoop$11(Interpret.scala:198)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.CollectedUnions.$anonfun$othersEff$1(Unions.scala:97)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:383)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.Interpret.$anonfun$interpretLoop$11(Interpret.scala:198)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.CollectedUnions.$anonfun$othersEff$1(Unions.scala:97)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:383)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.IntoPolyLower4$$anon$15.$anonfun$apply$62(IntoPoly.scala:220)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.IntoPolyLower4$$anon$15.$anonfun$apply$62(IntoPoly.scala:220)
[error] at org.specs2.control.eff.Arrs.go$1(Eff.scala:380)
[error] at org.specs2.control.eff.Arrs.apply(Eff.scala:399)
[error] at org.specs2.control.eff.EffInterpretation.$anonfun$detachA$8(Eff.scala:316)
[error] at org.specs2.fp.Monad.$anonfun$map$2(Monad.scala:22)
[error] at org.specs2.control.eff.TimedFuture$$anon$2.$anonfun$point$2(FutureEffect.scala:57)
[error] at org.specs2.control.eff.TimedFuture.$anonfun$runNow$1(FutureEffect.scala:15)
[error] at scala.Option.fold(Option.scala:263)
[error] at org.specs2.control.eff.TimedFuture.runNow(FutureEffect.scala:16)
[error] at org.specs2.control.eff.TimedFuture$$anon$2.$anonfun$bind$2(FutureEffect.scala:60)
[error] at scala.concurrent.impl.Promise$Transformation.run(Promise.scala:470)
[error] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[error] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[error] at java.lang.Thread.run(Thread.java:750)
No indication of which test is failing. The NPE itself seems to indicate a Skipped with a null message, but I don't see how such a thing could come to exist.
Still seeing this :-( (at least on the macOS runners)
Oh no! 😢
Got another, slightly different message though. This is on ubuntu-latest.
[error] sbt.ForkMain$ForkError: java.lang.NullPointerException: Cannot invoke "String.isEmpty()" because the return value of "org.specs2.execute.Skipped.message()" is null
[error] at org.specs2.reporter.TextPrinter.printSkipped(TextPrinter.scala:181)
[error] at org.specs2.reporter.TextPrinter.printSkipped$(TextPrinter.scala:178)
[error] at org.specs2.reporter.TextPrinter$.printSkipped(TextPrinter.scala:292)
https://github.com/typelevel/cats-effect/runs/6944865251?check_suite_focus=true#step:17:3897
Still getting this.
Haven't seen this for a while. I think we're good.