Revert "perf: prioritize handling of Terminated after updating ddata" #32766
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Revert #32756.
Optimisation didn't end up prioritising the first Terminated message, as later stashed messages will be prepended on unstash.
But this also breaks the receive of that Terminated message — where it will be ignored on reprocessing, if it was received during update and handled specially without stash. Which means that the shard coordinator never removes the terminated shard region, and will continue to report that shards have their home on a terminated node.
Terminated messages are handled specially. They'll be removed from the
terminatedQueued
when received the first time:akka/akka-actor/src/main/scala/akka/actor/dungeon/DeathWatch.scala
Lines 75 to 87 in a90c165
While the prepend on unstash ensures that it gets added back again:
akka/akka-actor/src/main/scala/akka/actor/Stash.scala
Lines 256 to 268 in a90c165
So these specially handled Terminated messages were always being ignored.