planetarium / libplanet

Blockchain in C#/.NET for on-chain, decentralized gaming
https://docs.libplanet.io/
GNU Lesser General Public License v2.1
506 stars 142 forks source link

`DelayedActionRenderer<T>` throws unexpected `ArgumentException`s in some cases #1380

Closed dahlia closed 1 year ago

dahlia commented 3 years ago

The cause is unknown, but sometimes DelayedActionRenderer<T> throws unexpected ArgumentExceptions:

[2021-07-12 21:27:38.593] [info] 7925c9caa8d989f4c5bc3fc0a44ebc5c0c1bc5a403ff0953c3f801a7d8d): System.ArgumentException: The upper block (#1899083 6fb027925c9caa8d989f4c5bc3fc0a44ebc5c0c1bc5a403ff0953c3f801a7d8d) must has the greater index than the lower block (#1899083 6fb027925c9caa8d989f4c5bc3fc0a44ebc5c0c1bc5a403ff0953c3f801a7d8d). (Parameter 'upper')
   at Libplanet.Blockchain.Renderers.DelayedActionRenderer`1.LocateBlockPath(Block`1 lower, Block`1 upper) in D:\a\9c-launcher\9c-launcher\NineChronicles.Headless\Lib9c\.Libplanet\Libplanet\Blockchain\Renderers\DelayedActionRenderer.cs:line 319
   at Libplanet.Blockchain.Renderers.DelayedActionRenderer`1.RenderReorg(Block`1 oldTip, Block`1 newTip, Block`1 branchpoint) in D:\a\9c-launcher\9c-launcher\NineChronicles.Headless\Lib9c\.Libplanet\Libplanet\Blockchain\Renderers\DelayedActionRenderer.cs:line 104
   at Libplanet.Blockchain.Renderers.LoggedRenderer`1.LogReorgRendering(String methodName, Block`1 oldTip, Block`1 newTip, Block`1 branchpoint, Action`3 callback) in D:\a\9c-launcher\9c-launcher\NineChronicles.Headless\Lib9c\.Libplanet\Libplanet\Blockchain\Renderers\LoggedRenderer.cs:line 191
System.ArgumentException: The upper block (#1899083 6fb027925c9caa8d989f4c5bc3fc0a44ebc5c0c1bc5a403ff0953c3f801a7d8d) must has the greater index than the lower block (#1899083 6fb027925c9caa8d989f4c5bc3fc0a44ebc5c0c1bc5a403ff0953c3f801a7d8d). (Parameter 'upper')
   at Libplanet.Blockchain.Renderers.DelayedActionRenderer`1.LocateBlockPath(Block`1 lower, Block`1 upper) in D:\a\9c-launcher\9c-launcher\NineChronicles.Headless\Lib9c\.Libplanet\Libplanet\Blockchain\Renderers\DelayedActionRenderer.cs:line 319
   at Libplanet.Blockchain.Renderers.DelayedActionRenderer`1.RenderReorg(Block`1 oldTip, Block`1 newTip, Block`1 branchpoint) in D:\a\9c-launcher\9c-launcher\NineChronicles.Headless\Lib9c\.Libplanet\Libplanet\Blockchain\Renderers\DelayedActionRenderer.cs:line 104
   at Libplanet.Blockchain.Renderers.LoggedRenderer`1.LogReorgRendering(String methodName, Block`1 oldTip, Block`1 newTip, Block`1 branchpoint, Action`3 callback) in D:\a\9c-launcher\9c-launcher\NineChronicles.Headless\Lib9c\.Libplanet\Libplanet\Blockchain\Renderers\LoggedRenderer.cs:line 191

See also: https://discord.com/channels/539405872346955788/653951482395361301/864162272972505088

The full log is here: logs.zip.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. Thank you for your contributions.