dymensionxyz / dymension

Dymension Hub
https://dymension.xyz
Other
364 stars 339 forks source link

Retry failed liveness events #1261

Open danwt opened 3 days ago

danwt commented 3 days ago

In x/rollapp/keeper/liveness.go:47, rollapp liveness events are handled with an ApplyFuncIfNoError wrapper, that gracefully handles error by preventing inconsistent states. Within this error handling, however, there is no retry logic: if for whatever reason a liveness event is not handled properly, it is never retried. This because liveness events are queried from the storage at exact height, so the fact that they are kept in storage does not mean they will be retried - and this is different from how it happens for other similar parts like the unbonding events. Recommendation We recommend updating the liveness handling logic to either reschedule failed events at the next block, or querying for “maximum” instead of “exact” block heights.

IMO not sure it's worth retrying because why would it work next time?

But need to check anyway that full lifecycle is correct, similar to https://github.com/dymensionxyz/dymension/issues/1050

omritoptix commented 1 day ago

doesn't sound like MVP material to me, even if true.