[erlang-bugs] release_handler error in upgrading slim release

Shunichi Shinohara shino.shun@REDACTED
Tue Nov 5 15:45:03 CET 2013


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



More information about the erlang-bugs mailing list