Crash report
When we execute the following command, it will definitely cause a crash.
After module unload, the hello.simple command has been released.
multi
module unload helloworld
hello.simple
exec
Additional information It's going to be a breaking change.
Comment From: oranagra
do you see any reason to load or unload modules in a transaction?
i guess someone could try to atomically load a module, use it and unload it without it being exposed to other clients:
multi
module load
mymodule.command
module unload
exec
I don't think i care much about this use case, but maybe don't think that the scenario in that crash is very severe (someone shooting himself in the leg). @yossigo @itamarhaber WDYT?
Comment From: sundb
@oranagra I just found it by accident.
Comment From: yossigo
@oranagra I don't see a reason to allow that. In the scenario you describe, the module itself can implement a kill switch command that will effectively make it inaccessible effective immediately, so it can be lazily unloaded later.
Comment From: oranagra
@sundb go ahead and make a PR