[erlang-questions] release upgrades and code loading

Ivan Uemlianin <>
Sat Feb 15 13:51:48 CET 2014


Dear Alexander

Thanks for yor comment.

I shall look into what genappup does but two reasons against my using it are: I'm currently liking doing things explictly and manually, partly to learn; I've moved away from using rebar.

Reading that page though, I realise I might have written some incorrect appups. (Will go and check)

Best wishes

Ivan

--
festina lente


> On 15 Feb 2014, at 12:20, Alexander Petrovsky <> wrote:
> 
> Ivan, by the way for generate appup files you can use genappup - http://www.echorussia.ru/erlang-releases.html
> 
> 
> 2014-02-13 23:26 GMT+03:00 Ivan Uemlianin <>:
>> Paul's interpretation is what I was trying to do with this upgrade.
>> 
>> Ivan
>> 
>> --
>> festina lente
>> 
>> 
>> > On 13 Feb 2014, at 20:17, Paul Davis <> wrote:
>> >
>> > Mike, pretty sure its upgrading two apps to the same version.
>> >
>> > app1 is 20140211.1 -> 20140213.1
>> > app2 is 20140207.1 -> 20140213.1
>> >
>> >> On Thu, Feb 13, 2014 at 1:59 PM, Mike Oxford <> wrote:
>> >> It looks like you're trying to suspend version 20140213.1 and replace it
>> >> with 20140213.1 (the same version.)
>> >>
>> >>
>> >>
>> >>> On Thu, Feb 13, 2014 at 11:51 AM, Ivan Uemlianin <> wrote:
>> >>>
>> >>> Sorry don't follow
>> >>>
>> >>> --
>> >>> festina lente
>> >>>
>> >>>
>> >>> On 13 Feb 2014, at 19:35, Mike Oxford <> wrote:
>> >>>
>> >>> [{"1.0.6",[],
>> >>>   [{load_object_code,{app1,"20140213.1",[app1]}},
>> >>>    {load_object_code,{app2,"20140213.1",[app2]}},
>> >>>
>> >>> Replacing a version with itself?
>> >>>
>> >>>
>> >>>
>> >>>> On Thu, Feb 13, 2014 at 11:03 AM, Ivan Uemlianin <> wrote:
>> >>>>
>> >>>> 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
>> >>>> ============================================================
>> >>
>> >>
>> >> _______________________________________________
>> >> erlang-questions mailing list
>> >> 
>> >> http://erlang.org/mailman/listinfo/erlang-questions
>> >>
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://erlang.org/mailman/listinfo/erlang-questions
> 
> 
> 
> -- 
> Петровский Александр / Alexander Petrovsky,
> 
> Skype: askjuise
> Phone: +7 914 8 820 815
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140215/876d2207/attachment.html>


More information about the erlang-questions mailing list