Use an invalid table index as the callback for one-way functions#2942
Use an invalid table index as the callback for one-way functions#2942mergify[bot] merged 3 commits intomasterfrom
Conversation
this fixes #2938, and allows developers to write canisters that are zero-downtime upgradeable, as long as they stick to making one-way calls onlys (i.e. plain actor model)
|
Very nice but we should double check this doesn't somehow interfere with the work that @ggreif did with cleanup of the closure table after a trapping callback. Probably fine, but best to double check. |
|
Double checking is appreciated. I believe that the callback table wasn't used at all for one-ways, and no cleanup callback needed or used. (This also means that the “is it safe to upgrade” check was incomplete, as it would ignore outstanding callbacks to one-way calls.) |
|
Because with this change, when the callback comes back, the system now complains about the callback is to be invalid. that's expected (and drun is even silent about this) |
|
Sorry for the delay, I am a bit behind. I'll have a look soon. |
|
Ping, @ggreif? |
|
This got buried again :-(, sorry! I have double-checked, #2663 is compatible with this change, as it will try to access the continuation table in the same way as the other callbacks. |
this fixes #2938, and allows developers to write canisters that are
zero-downtime upgradeable, as long as they stick to making one-way calls
onlys (i.e. plain actor model)