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