[erlang-questions] release upgrades and code loading

Ivan Uemlianin <>
Thu Feb 13 19:00:06 CET 2014

Dear All

I am just getting started with live release upgrades, using relx and 
following this tutorial:


Everything seems to work as advertised, except sometimes I need to 
explicitly load the code into the running vm (i.e., using 
code_load_file/1) for the new stuff to take effect.  The function 
release_handler:which_releases/0 reports the new release as active and 
permanent, but I can see from behaviour that old versions of certain 
modules are still running and handling data.

I can't be much more specific I'm afraid.  One example: one application 
uses cowboy.  If a release upgrade changes a cowboy resource module, the 
new release version might still be running the old version of that 
module until I load_file and purge.

Why might this be happening?  Am I missing something in the packaging 
and upgrade process?  Is there a better way I can write my modules?

If the information above is too vague, what should I look out for next 
time this happens?

With thanks and best wishes


Ivan A. Uemlianin PhD
Speech Technology Research and Development


                         festina lente

More information about the erlang-questions mailing list