[erlang-bugs] release_handler error in upgrading slim release

Shunichi Shinohara shino.shun@REDACTED
Wed Nov 6 02:47:00 CET 2013


Tristan,

Thank you very much for information. I will check the examples and relx.

On Wed, Nov 6, 2013 at 12:55 AM, Tristan Sloughter
<tristan.sloughter@REDACTED> wrote:
> I don't think there is any bug here but just how systools works, and how
> picky it is.
>
> I'd suggest looking at relx and these 2 examples of making upgrades with
> it:
>
> https://github.com/extend/elevators
> https://github.com/blt/beat/
>
> And http://learnyousomeerlang.com/relups
>
> On Tue, Nov 5, 2013, at 06:45 AM, Shunichi Shinohara wrote:
>> I try to make rebar work with slim release at
>> https://github.com/rebar/rebar/pull/52 .
>> Almost all goes well, but in upgrading in slim release environment
>> an error occurs and fails. (R16B02, Linux)
>>
>> To simplify step to reproduce, I created repository which has
>> rebar binary and some configuration files.
>> https://github.com/shino/slim-upgrade-sample
>>
>> Steps to reproduce:
>> 0. Clone the repository and cd to it.
>>    git clone https://github.com/shino/slim-upgrade-sample.git
>> 1. Generate version 1 and 2 of releases and upgrade package between
>>    them. The script generate.sh in the repo does this work.
>> 2. Boot the node with release version 1 and try to unpack the upgrade
>>    package.
>> 3. The following error occurs.
>>   > release_handler:unpack_release("sample_2").
>>   {error,{enoent,
>>    "/opt/shino/scm/slim-upgrade-sample/sample/rel/sample_1/releases/sample_2.rel"}}
>>
>> "/opt/shino/scm/slim-upgrade-sample/sample/rel/sample_1/" is root
>> directory
>> of slim release generated by reltool.
>> The file "sample_2.rel" which release_handler complains not-found goes
>> under the "releases" directory of Erlang/OTP which execute the node.
>> Quick look of source code, release_handler seems to assume "releases"
>> directory
>> exists just under root directory (it's appropriate for normal,
>> non-slim release).
>>
>> - extract_rel_file/2: Extract rel file in tar ball under root directory.
>>   https://github.com/erlang/otp/blob/OTP_R16B02/lib/sasl/src/release_handler.erl#L835
>> - check_rel/3,4: Try rel file under releases directory of slim release.
>>   https://github.com/erlang/otp/blob/OTP_R16B02/lib/sasl/src/release_handler.erl#L836
>>
>> P.S.
>> Sorry that steps to reproduce contain non-OTP, rebar related things.
>> I hope rebar is not related the error because of release_handler's code
>> above.
>>
>> Best Regards,
>> Shino
>> _______________________________________________
>> erlang-bugs mailing list
>> erlang-bugs@REDACTED
>> http://erlang.org/mailman/listinfo/erlang-bugs



More information about the erlang-bugs mailing list