[erlang-questions] High Sierra and binary_to_term (compressed)

Jan Chochol jan.chochol@REDACTED
Tue Nov 14 08:30:30 CET 2017


Hi Martin,

This is bug with combination of new zlib and old Erlang -
https://github.com/erlang/otp/commit/e27119948fc6ab28bea81019720bddaac5b655a7
.
It is fixed in OTP-18.3.4.5 and newer.
"--enable-builtin-zlib" works, because it uses older bundled zlib.

Jan

On Mon, Nov 13, 2017 at 10:01 PM, Martin Sumner <martin.sumner@REDACTED>
wrote:

> Rather foolishly I accepted the upgrade to High Sierra on my Macbook last
> night.  This has led to an interesting problem with a binary_to_term line
> on my project.
>
> Following the upgrade, tests have started failing on this line:
>
> https://github.com/martinsumner/leveled/blob/master/src/leveled_sst.erl#
> L875
>
> with error:badarg being thrown.
>
> However if I copy and paste the binary on which the badarg has been thrown
> out of the crash report, and into a erlang console - binary_to_term works
> just fine.
>
> See this issue for an example - https://github.com/
> martinsumner/leveled/issues/106
>
> This failure is intermittent, and indeed wrapping the binary_to_term like
> this is enough to make the problem seemingly disappear:
>
> try binary_to_term(Bin) of
>     T ->
>         T
> catch
>     error:badarg ->
>         binary_to_term(Bin)
> end.
>
> Re-running the tests on another OSX device on a release previous to High
> Sierra shows no issues with/without the wrapper.
>
> The problem appears to consistently exist in OTP 17.5 and 18.3.  However,
> running the tests in 19.3 and R16B02-basho10 doesn't show the problem.
>
> The terms in question have all been compressed using term_to_binary's zlib
> compression.
>
> If I build 18.3 on High Sierra with the  "--enable-builtin-zlib" option,
> the problem does *not* re-occur.  This switch appears to be a reliable
> delta between having and not having the problem, and I believe may have
> become the default in OTP 17.
>
> It appears to be specific to v17/v18 Erlang with compressed terms, on High
> Sierra where the OS zlib implementation is used, not the inbuilt OTP zlib.
>
> There appears to be internet chatter of other issues with Mac OSX High
> Sierra and changes to the zlib implementation - https://github.com/madler/
> zlib/issues/305.
>
> So I think this doesn't look like it is an Erlang issue, but I suspect it
> may not be resolved in High Sierra any time soon, and may impact other
> Erlang users using zlib functionality.  Does this it seem reasonable to
> pass this off as a High Sierra zlib bug, and use the --enable-builtin-zlib
> workaround?  If this is the case I'm not sure why I don't get the issue on
> 19.3, any ideas as to why?
>
> Martin
>
>
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20171114/29773ccb/attachment.htm>


More information about the erlang-questions mailing list