Closed bkchr closed 3 weeks ago
The hotfix looks correct, but the assumption that it will retry in the next context is not that great, since it could also retry in the same context and then keep looping around a bit...
How could it retry in the same context again?
How could it retry in the same context again?
I guess eventually it should resolve if there is any on_idle
weight. If the chain is constantly at 100% then dont know.
Quite a few chains seem to use it currently: https://github.com/search?q=%22IdleMaxServiceWeight+%3D%22&type=code
I will query the datalake tomorrow for OverweightEnqueued
events by parachain.
I guess eventually it should resolve if there is any
on_idle
weight. If the chain is constantly at 100% then dont know.
The problem is OnIdle
, that when you have not enough weight left. Right now the message is seen as constantly overweight, but with my fix here it is only pushed back and retried in the next block. A further optimization could be that we try other messages if they may fit.
/cmd prdoc --bump patch --audience runtime-dev
Command "prdoc --bump patch --audience runtime-dev" has failed ❌! See logs here
/cmd prdoc --bump patch --audience runtime_dev
Successfully created backport PR for stable2407
:
Successfully created backport PR for stable2409
:
The max size of a message should not depend on the weight left in a given execution context. Instead the max message size depends on the service weights configured for the pallet. A message that may does not fit into
on_idle
is not automatically overweight, because it may can be executed successfully inon_initialize
or in another block inon_idle
when there is more weight left.