[erlang-questions] release upgrades and code loading

Ivan Uemlianin <>
Thu Feb 13 20:03:24 CET 2014


Dear Mike

Thanks for your help.

Here's a recent relup.  After this upgrade, I had to manually code_load 
and purge app1:

{"1.0.7",
  [{"1.0.6",[],
    [{load_object_code,{app1,"20140213.1",[app1]}},
     {load_object_code,{app2,"20140213.1",[app2]}},
     point_of_no_return,
     {suspend,[app1]},
     {load,{app1,brutal_purge,brutal_purge}},
     {code_change,up,[{app1,[from1to2]}]},
     {resume,[app1]},
     {suspend,[app2]},
     {load,{app2,brutal_purge,brutal_purge}},
     {code_change,up,[{app2,[from1to2]}]},
     {resume,[app2]}]}],
  [{"1.0.6",[],
    [{load_object_code,{app1,"20140211.1",[app1]}},
     {load_object_code,{app2,"20140207.1",[app2]}},
     point_of_no_return,
     {suspend,[app1]},
     {code_change,down,[{app1,[from2to1]}]},
     {load,{app1,brutal_purge,brutal_purge}},
     {resume,[app1]},
     {suspend,[app2]},
     {code_change,down,[{app2,[from2to1]}]},
     {load,{app2,brutal_purge,brutal_purge}},
     {resume,[app2]}]}]}.

Best wishes

Ivan


On 13/02/2014 18:54, Mike Oxford wrote:
> Is your brutal_purge on the PostPurge or the PrePurge?
>
>
> On Thu, Feb 13, 2014 at 10:00 AM, Ivan Uemlianin <
> <mailto:>> wrote:
>
>     Dear All
>
>     I am just getting started with live release upgrades, using relx and
>     following this tutorial:
>
>     http://blog.troutwine.us/2013/__09/13/trivial_otp_releases.__html
>     <http://blog.troutwine.us/2013/09/13/trivial_otp_releases.html>
>
>     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
>
>
>     --
>     ==============================__==============================
>     Ivan A. Uemlianin PhD
>     Llaisdy
>     Speech Technology Research and Development
>
>      <mailto:>
>     www.llaisdy.com <http://www.llaisdy.com>
>     llaisdy.wordpress.com <http://llaisdy.wordpress.com>
>     github.com/llaisdy <http://github.com/llaisdy>
>     www.linkedin.com/in/__ivanuemlianin
>     <http://www.linkedin.com/in/ivanuemlianin>
>
>                              festina lente
>     ==============================__==============================
>     _________________________________________________
>     erlang-questions mailing list
>      <mailto:>
>     http://erlang.org/mailman/__listinfo/erlang-questions
>     <http://erlang.org/mailman/listinfo/erlang-questions>
>
>

-- 
============================================================
Ivan A. Uemlianin PhD
Llaisdy
Speech Technology Research and Development

                     
                      www.llaisdy.com
                          llaisdy.wordpress.com
               github.com/llaisdy
                      www.linkedin.com/in/ivanuemlianin

                         festina lente
============================================================



More information about the erlang-questions mailing list