libplanet
libplanet copied to clipboard
Investigate for `ConsumeBlockCandidates()` crashes
Note: we already fixed ConsumeBlockCandidates() crash on 0.46.1, but couldn't pinpoint the cause. So I'm leaving an issue for investigation and follow-up.
-
On
BlockCandidateDownload(),BlockCandidateTable.Add()is called forblocks, fetched byGetBlockAsync(). https://github.com/planetarium/libplanet/blob/ed9ee092c883ba93365316ea520f7da624646932/Libplanet.Net/Swarm.BlockCandidate.cs#L383-L389 -
GetBlocksAsync()simply returns empty enumeration when has been timeouted. https://github.com/planetarium/libplanet/blob/ed9ee092c883ba93365316ea520f7da624646932/Libplanet.Net/Swarm.cs#L819-L822
As far as checked, I've been able to find timeout exceptions on almost every node that had crashed.
In other logs around the time the symptom occurred, it was found that the NetMQRuntime has been blocked causing a delay of several seconds. I'll cover it as a separate issue.
I opened #2817 to address blockings during hostname resolution.
This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.