fix: disable batching for vt executor#32785
Conversation
| val all = threadInfoProbe.receiveN(4) | ||
| val items = all.collect { case (evt: String, threadId: Long) => (evt, threadId) } | ||
| items.map(_._2).toSet should have size (2) // two different virtual threads | ||
| items.map(_._1) shouldEqual (Seq("parent before", "child before", "parent after", "child after")) |
There was a problem hiding this comment.
This looks like it can be flaky. It might take more than 20 millis for the child to be scheduled and then "parent after" will come before "child before"
There was a problem hiding this comment.
Yeah, hmm, I couldn't figure out a way to make it completely deterministic without also making the reproducer go a way (like cross future synchronization something). Should I just tune the timeouts up a bit, I had them at 100 - 400 to start with but tuned down.
There was a problem hiding this comment.
yes, some longer would be fine. Probably a valid case for dilated as well, so it takes some longer in CI
There was a problem hiding this comment.
More generous now
|
Note, no PR validation on JDK 21, so tests are disabled. I ran them locally and all green now (plus failing if I remove that marker from the |
This fixes that batching in the dispatcher would cause new tasks scheduled from a virtual thread to be batched and run in the same virtual thread rather than immediately start in a separate virtual thread.