fix: Asynchronous task [sendMsgSlow()] was cancelled [FutureDefect] #1094
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.
Fix for:
crash on Nimbus 24.4.0 in production 9:03 EDT. 09:03:24.578950-04:00 localhost nimbus-beacon[4803]: Error: unhandled exception: Asynchronous task [sendMsgSlow() at pubsubpeer.nim:301] was cancelled! [FutureDefect]
Using
await
on a sharedFuture
can raise an unexpectedCancelledError
if thisFuture
gets canceled indirectly by another task.race
(andjoin
in newer versions of chronos) creates a separate future that "insulates" the shared future from the cancellation flow. See status-im/nim-chronos@8166d7d#diff-a6bc56e6ac55acab484b1a94671287d6f72bc6311b3ea43482b438b517ec9390R172.