<div>Excellent - thanks so much !<br><div class="gmail_quote"><div>On Fri, Jan 20, 2017 at 11:16 AM Sverker Eriksson <<a href="mailto:sverker.eriksson@ericsson.com">sverker.eriksson@ericsson.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br><br>  <br><br>    <br><br>  <br><br>  <div text="#000000" bgcolor="#FFFFFF" class="gmail_msg"><br><br>    This is indeed a problem in Erlang VM code (shallow copy of inflate<br><br>    state)<br class="gmail_msg"><br><br>    that has existed since R16B03, but not caused actual problem until<br><br>    zlib v1.2.9.<br class="gmail_msg"><br><br>    <br class="gmail_msg"><br><br>    Fix coming up. Here is a preliminary patch for the impatient.<br class="gmail_msg"><br><br>    <br class="gmail_msg"><br><br>    diff --git a/erts/emulator/beam/external.c<br><br>    b/erts/emulator/beam/external.c<br class="gmail_msg"><br><br>    index beed847..1c4fff5 100644<br class="gmail_msg"><br><br>    --- a/erts/emulator/beam/external.c<br class="gmail_msg"><br><br>    +++ b/erts/emulator/beam/external.c<br class="gmail_msg"><br><br>    @@ -1431,6 +1431,10 @@ static B2TContext*<br><br>    b2t_export_context(Process* p, B2TContext* src)<br class="gmail_msg"><br><br>         if (ctx->state >= B2TDecode && ctx->u.dc.next<br><br>    == &src->u.dc.res) {<br class="gmail_msg"><br><br>             ctx->u.dc.next = &ctx->u.dc.res;<br class="gmail_msg"><br><br>         }<br class="gmail_msg"><br><br>    +    else if (ctx->state == B2TUncompressChunk) {<br class="gmail_msg"><br><br>    +        int cres = inflateCopy(&ctx->u.uc.stream,<br><br>    &src->u.uc.stream);<br class="gmail_msg"><br><br>    +        ASSERT(cres == Z_OK); (void)cres;<br class="gmail_msg"><br><br>    +    }<br class="gmail_msg"><br><br>         hp = HAlloc(p, PROC_BIN_SIZE); <br class="gmail_msg"><br><br>         ctx->trap_bin = erts_mk_magic_binary_term(&hp,<br><br>    &MSO(p), context_b);<br class="gmail_msg"><br><br>         return ctx;<br class="gmail_msg"><br><br>    <br class="gmail_msg"><br><br>    <br class="gmail_msg"><br><br>    /Sverker, Erlang/OTP</div><div text="#000000" bgcolor="#FFFFFF" class="gmail_msg"><br class="gmail_msg"><br><br>    <br class="gmail_msg"><br><br>    <br class="gmail_msg"><br><br>    <div class="m_-1052779652703312402moz-cite-prefix gmail_msg">On 01/20/2017 02:49 AM, Jeremy Huffman<br><br>      wrote:<br class="gmail_msg"><br><br>    </div><br><br>    </div><div text="#000000" bgcolor="#FFFFFF" class="gmail_msg"><blockquote type="cite" class="gmail_msg"><br><br>      <pre class="gmail_msg">I opened a Github issue with zlib. <a class="m_-1052779652703312402moz-txt-link-freetext gmail_msg" href="https://github.com/madler/zlib/issues/206" target="_blank">https://github.com/madler/zlib/issues/206</a>.<br><br>Mark Adler (zlib maintainer's) response:<br><br><br><br>"Isolating it to that commit points to a problem in the application code,<br><br>where it must be inadvertently stomping on the deflate state, e.g. with an<br><br>out-of-bounds write into memory, or perhaps that the code is trying to use<br><br>the deflate state after it has been closed. The only change that commit<br><br>made was to check the integrity of the deflate structure more thoroughly on<br><br>each call of a deflate* function."<br><br><br><br>On Thu, Jan 19, 2017 at 2:11 PM, Michel Boaventura <<br><br><a class="m_-1052779652703312402moz-txt-link-abbreviated gmail_msg" href="mailto:michel.boaventura@gmail.com" target="_blank">michel.boaventura@gmail.com</a>> wrote:<br><br><br><br></pre><br><br>      <blockquote type="cite" class="gmail_msg"><br><br>        <pre class="gmail_msg">Hi,<br><br><br><br>I've done the bisect and find the culprit: <a class="m_-1052779652703312402moz-txt-link-freetext gmail_msg" href="https://github.com/" target="_blank">https://github.com/</a><br><br>madler/zlib/commit/b516b4bdd7c0c9f0858adfebf732089014f7b282. Before this<br><br>commit term_to_binary works and stop doing so afterwards. I will have a<br><br>look at the changes and see if I can figure out what happened.<br><br><br><br>Cheers,<br><br><br><br><br><br>On 19 January 2017 at 16:15, Michel Boaventura <<br><br><a class="m_-1052779652703312402moz-txt-link-abbreviated gmail_msg" href="mailto:michel.boaventura@gmail.com" target="_blank">michel.boaventura@gmail.com</a>> wrote:<br><br><br><br></pre><br><br>        <blockquote type="cite" class="gmail_msg"><br><br>          <pre class="gmail_msg">Hi all,<br><br><br><br>I'm indeed using zlib 1.2.11 on my gentoo. I can't downgrade it, since<br><br>all the other versions were removed from portage.<br><br><br><br>I will clone zlib repo and see if I can bisect the problem.<br><br><br><br>Thanks!<br><br><br><br>On 19 January 2017 at 15:45, Jeremy Huffman <a class="m_-1052779652703312402moz-txt-link-rfc2396E gmail_msg" href="mailto:jeremy@jeremyhuffman.com" target="_blank"><jeremy@jeremyhuffman.com></a><br><br>wrote:<br><br><br><br></pre><br><br>          <blockquote type="cite" class="gmail_msg"><br><br>            <pre class="gmail_msg">Yes it's exactly the same error message from dialyzer. And the fact that<br><br>he's getting it on Gentoo which builds from source suggests that it is not<br><br>simply a matter of recompiling the dependency chain, which was a suggestion<br><br>in the Arch board. There was another app in Arch that also had a problem<br><br>pinned on zlib 1.2.11.<br><br><br><br><br><br>On Thu, Jan 19, 2017 at 11:33 AM Kostis Sagonas <a class="m_-1052779652703312402moz-txt-link-rfc2396E gmail_msg" href="mailto:kostis@cs.ntua.gr" target="_blank"><kostis@cs.ntua.gr></a><br><br>wrote:<br><br><br><br></pre><br><br>            <blockquote type="cite" class="gmail_msg"><br><br>              <pre class="gmail_msg">On 01/19/2017 03:42 AM, Jeremy Huffman wrote:<br><br><br><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">Hi,<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">I'm an Arch Linux user and picked up an update a few days ago that<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg">broke<br><br><br><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">dialyzer. I bisected the last few days of updates and then narrowed<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg">the<br><br><br><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">problem to zlib 1.2.10, which was released January 2nd. 1.2.11 was<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">released on the 15th as an emergency bug fix and does not fix the<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">problem. Reverting my system back to 1.2.8 (the previous version<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">packaged for Arch) did resolve the issue.<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">It seems doubtful this is an Erlang problem, but I doubt I'm going to<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">write a test program to demonstrate the problem to them.  I thought I<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">should at least report the issue in case others encounter it.<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">To reproduce, one would need only install zlib 1.2.10 and then run:<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">dialyzer --verbose --build_plt --apps erts --output_plt test.plt<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">Output would be along the lines of:<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">dialyzer: Could not get abstract code for file:<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">/usr/lib/erlang/lib/erts-8.2/ebin/erlang.beam (please recompile it<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg">with<br><br><br><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">+debug_info)<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">There are also errors when simply trying to do success typing analysis<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">*using* any pre-existing PLT file, along lines of "this isn't a PLT<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">file". The errors are not dependent upon the version of Erlang<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg">installed<br><br><br><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">- at least anything I tried that was released on Arch in the 19.x<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg">branch<br><br><br><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">will reproduce the problem.<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg"><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">Anyway, I hope this report helps someone and I would be curious if<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br></pre><br><br>              <blockquote type="cite" class="gmail_msg"><br><br>                <pre class="gmail_msg">anyone else reproduces it, or especially if they fail to reproduce it.<br><br></pre><br><br>              </blockquote><br><br>              <pre class="gmail_msg"><br><br><br><br><br>Earlier today (yesterday?), there was the following question on the<br><br><br><br>erlang-questions mailing list:<br><br><br><br><br><br><br><br>   <a class="m_-1052779652703312402moz-txt-link-freetext gmail_msg" href="http://erlang.org/pipermail/erlang-questions/2017-January/0" target="_blank">http://erlang.org/pipermail/erlang-questions/2017-January/0</a><br><br>91434.html<br><br><br><br><br><br><br><br>I am willing to bet that problem with binary_to_term is also caused by<br><br><br><br>zlib troubles.<br><br><br><br><br><br><br><br>Perhaps Michel (cc:) can inform us about his zlib version.<br><br><br><br><br><br><br><br>Kostis<br><br><br><br><br><br></pre><br><br>            </blockquote><br><br>          </blockquote><br><br>          <pre class="gmail_msg"><br><br><br>--<br><br>Michel Almada de Castro Boaventura<br><br>Analista de Sistemas<br><br>Laboratório de Software Livre - LSL<br><br><br><br></pre><br><br>        </blockquote><br><br>        <pre class="gmail_msg"><br><br><br><br><br>--<br><br>Michel Almada de Castro Boaventura<br><br>Analista de Sistemas<br><br>Laboratório de Software Livre - LSL<br><br><br><br></pre><br><br>      </blockquote><br><br>      <pre class="gmail_msg"><br></pre><br><br>      <br class="gmail_msg"><br><br>      <fieldset class="m_-1052779652703312402mimeAttachmentHeader gmail_msg"></fieldset><br><br>      <br class="gmail_msg"><br><br>      </blockquote></div><div text="#000000" bgcolor="#FFFFFF" class="gmail_msg"><blockquote type="cite" class="gmail_msg"><pre class="gmail_msg">_______________________________________________<br><br>erlang-bugs mailing list<br><br><a class="m_-1052779652703312402moz-txt-link-abbreviated gmail_msg" href="mailto:erlang-bugs@erlang.org" target="_blank">erlang-bugs@erlang.org</a><br><br><a class="m_-1052779652703312402moz-txt-link-freetext gmail_msg" href="http://erlang.org/mailman/listinfo/erlang-bugs" target="_blank">http://erlang.org/mailman/listinfo/erlang-bugs</a><br><br></pre><br><br>    </blockquote><br><br>    <br class="gmail_msg"><br><br>  </div><br><br><br><br></blockquote></div></div>