Re: Dialyzer problems with zlib 1.2.10 and 1.2.11
Jeremy Huffman <[email protected]> Fri, 20 Jan 2017 16:22:41 +0000
| Newsgroups | gmane.comp.lang.erlang.bugs |
|---|---|
| Message-ID | <CAH37v0ksdHwtJYa=aanC0iPVH0PoZFJt6WfOxmnyF9FTTJBw2g@mail.gmail.com> |
--===============6348004545125696673== Content-Type: multipart/alternative; boundary=f403045f4e80c2768c0546890f20 --f403045f4e80c2768c0546890f20 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Excellent - thanks so much ! On Fri, Jan 20, 2017 at 11:16 AM Sverker Eriksson < [email protected]> wrote: > > > > > > > > > > > This is indeed a problem in Erlang VM code (shallow copy of inflate > > state) > > > that has existed since R16B03, but not caused actual problem until > > zlib v1.2.9. > > > > > > Fix coming up. Here is a preliminary patch for the impatient. > > > > > > diff --git a/erts/emulator/beam/external.c > > b/erts/emulator/beam/external.c > > > index beed847..1c4fff5 100644 > > > --- a/erts/emulator/beam/external.c > > > +++ b/erts/emulator/beam/external.c > > > @@ -1431,6 +1431,10 @@ static B2TContext* > > b2t_export_context(Process* p, B2TContext* src) > > > if (ctx->state >=3D B2TDecode && ctx->u.dc.next > > =3D=3D &src->u.dc.res) { > > > ctx->u.dc.next =3D &ctx->u.dc.res; > > > } > > > + else if (ctx->state =3D=3D B2TUncompressChunk) { > > > + int cres =3D inflateCopy(&ctx->u.uc.stream, > > &src->u.uc.stream); > > > + ASSERT(cres =3D=3D Z_OK); (void)cres; > > > + } > > > hp =3D HAlloc(p, PROC_BIN_SIZE); > > > ctx->trap_bin =3D erts_mk_magic_binary_term(&hp, > > &MSO(p), context_b); > > > return ctx; > > > > > > > > > /Sverker, Erlang/OTP > > > > > > > > > > On 01/20/2017 02:49 AM, Jeremy Huffman > > wrote: > > > > > > > I opened a Github issue with zlib. https://github.com/madler/zlib/issues/= 206. > > Mark Adler (zlib maintainer's) response: > > > > "Isolating it to that commit points to a problem in the application code, > > where it must be inadvertently stomping on the deflate state, e.g. with a= n > > out-of-bounds write into memory, or perhaps that the code is trying to us= e > > the deflate state after it has been closed. The only change that commit > > made was to check the integrity of the deflate structure more thoroughly = on > > each call of a deflate* function." > > > > On Thu, Jan 19, 2017 at 2:11 PM, Michel Boaventura < > > [email protected]> wrote: > > > > > > > > Hi, > > > > I've done the bisect and find the culprit: https://github.com/ > > madler/zlib/commit/b516b4bdd7c0c9f0858adfebf732089014f7b282. Before this > > commit term_to_binary works and stop doing so afterwards. I will have a > > look at the changes and see if I can figure out what happened. > > > > Cheers, > > > > > > On 19 January 2017 at 16:15, Michel Boaventura < > > [email protected]> wrote: > > > > > > > > Hi all, > > > > I'm indeed using zlib 1.2.11 on my gentoo. I can't downgrade it, since > > all the other versions were removed from portage. > > > > I will clone zlib repo and see if I can bisect the problem. > > > > Thanks! > > > > On 19 January 2017 at 15:45, Jeremy Huffman <[email protected]> <j= [email protected]> > > wrote: > > > > > > > > Yes it's exactly the same error message from dialyzer. And the fact that > > he's getting it on Gentoo which builds from source suggests that it is no= t > > simply a matter of recompiling the dependency chain, which was a suggesti= on > > in the Arch board. There was another app in Arch that also had a problem > > pinned on zlib 1.2.11. > > > > > > On Thu, Jan 19, 2017 at 11:33 AM Kostis Sagonas <[email protected]> <kost= [email protected]> > > wrote: > > > > > > > > On 01/19/2017 03:42 AM, Jeremy Huffman wrote: > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > > I'm an Arch Linux user and picked up an update a few days ago that > > > > > > broke > > > > > > > > dialyzer. I bisected the last few days of updates and then narrowed > > > > > > the > > > > > > > > problem to zlib 1.2.10, which was released January 2nd. 1.2.11 was > > > > > > > > > > > released on the 15th as an emergency bug fix and does not fix the > > > > > > > > > > > problem. Reverting my system back to 1.2.8 (the previous version > > > > > > > > > > > packaged for Arch) did resolve the issue. > > > > > > > > > > > > > > > > > > > > > It seems doubtful this is an Erlang problem, but I doubt I'm going to > > > > > > > > > > > write a test program to demonstrate the problem to them. I thought I > > > > > > > > > > > should at least report the issue in case others encounter it. > > > > > > > > > > > > > > > > > > > > > To reproduce, one would need only install zlib 1.2.10 and then run: > > > > > > > > > > > > > > > > > > > > > dialyzer --verbose --build_plt --apps erts --output_plt test.plt > > > > > > > > > > > > > > > > > > > > > Output would be along the lines of: > > > > > > > > > > > > > > > > > > > > > dialyzer: Could not get abstract code for file: > > > > > > > > > > > /usr/lib/erlang/lib/erts-8.2/ebin/erlang.beam (please recompile it > > > > > > with > > > > > > > > +debug_info) > > > > > > > > > > > > > > > > > > > > > There are also errors when simply trying to do success typing analysis > > > > > > > > > > > *using* any pre-existing PLT file, along lines of "this isn't a PLT > > > > > > > > > > > file". The errors are not dependent upon the version of Erlang > > > > > > installed > > > > > > > > - at least anything I tried that was released on Arch in the 19.x > > > > > > branch > > > > > > > > will reproduce the problem. > > > > > > > > > > > > > > > > > > > > > Anyway, I hope this report helps someone and I would be curious if > > > > > > > > > > > anyone else reproduces it, or especially if they fail to reproduce it. > > > > > > > > > > > Earlier today (yesterday?), there was the following question on the > > > > erlang-questions mailing list: > > > > > > > > http://erlang.org/pipermail/erlang-questions/2017-January/0 > > 91434.html > > > > > > > > I am willing to bet that problem with binary_to_term is also caused by > > > > zlib troubles. > > > > > > > > Perhaps Michel (cc:) can inform us about his zlib version. > > > > > > > > Kostis > > > > > > > > > > > > > > > -- > > Michel Almada de Castro Boaventura > > Analista de Sistemas > > Laborat=C3=B3rio de Software Livre - LSL > > > > > > > > > > > > > -- > > Michel Almada de Castro Boaventura > > Analista de Sistemas > > Laborat=C3=B3rio de Software Livre - LSL > > > > > > > > > > > > > > > > > > > _______________________________________________ > > erlang-bugs mailing list > > [email protected] > > http://erlang.org/mailman/listinfo/erlang-bugs > > > > > > > > > > > > > --f403045f4e80c2768c0546890f20 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div>Excellent - thanks so much !<br><div class=3D"gmail_quote"><div>On Fri= , Jan 20, 2017 at 11:16 AM Sverker Eriksson <<a href=3D"mailto:sverker.e= [email protected]">[email protected]</a>> wrote:<br></div= ><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1= px #ccc solid;padding-left:1ex"><br><br> <br><br> <br><br> <br><br> <= div text=3D"#000000" bgcolor=3D"#FFFFFF" class=3D"gmail_msg"><br><br> Th= is is indeed a problem in Erlang VM code (shallow copy of inflate<br><br> = state)<br class=3D"gmail_msg"><br><br> that has existed since R16B03, = but not caused actual problem until<br><br> zlib v1.2.9.<br class=3D"gma= il_msg"><br><br> <br class=3D"gmail_msg"><br><br> Fix coming up. Here= is a preliminary patch for the impatient.<br class=3D"gmail_msg"><br><br> = <br class=3D"gmail_msg"><br><br> diff --git a/erts/emulator/beam/exte= rnal.c<br><br> b/erts/emulator/beam/external.c<br class=3D"gmail_msg"><b= r><br> index beed847..1c4fff5 100644<br class=3D"gmail_msg"><br><br> = --- a/erts/emulator/beam/external.c<br class=3D"gmail_msg"><br><br> +++ = b/erts/emulator/beam/external.c<br class=3D"gmail_msg"><br><br> @@ -1431= ,6 +1431,10 @@ static B2TContext*<br><br> b2t_export_context(Process* p,= B2TContext* src)<br class=3D"gmail_msg"><br><br> =C2=A0=C2=A0=C2=A0=C2= =A0 if (ctx->state >=3D B2TDecode && ctx->u.dc.next<br><br= > =3D=3D &src->u.dc.res) {<br class=3D"gmail_msg"><br><br> =C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ctx->u.dc.next =3D &ct= x->u.dc.res;<br class=3D"gmail_msg"><br><br> =C2=A0=C2=A0=C2=A0=C2=A0= }<br class=3D"gmail_msg"><br><br> +=C2=A0=C2=A0=C2=A0 else if (ctx->= state =3D=3D B2TUncompressChunk) {<br class=3D"gmail_msg"><br><br> +=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int cres =3D inflateCopy(&ctx-&= gt;u.uc.stream,<br><br> &src->u.uc.stream);<br class=3D"gmail_msg= "><br><br> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ASSERT(cres =3D= =3D Z_OK); (void)cres;<br class=3D"gmail_msg"><br><br> +=C2=A0=C2=A0=C2= =A0 }<br class=3D"gmail_msg"><br><br> =C2=A0=C2=A0=C2=A0=C2=A0 hp =3D HA= lloc(p, PROC_BIN_SIZE); <br class=3D"gmail_msg"><br><br> =C2=A0=C2=A0=C2= =A0=C2=A0 ctx->trap_bin =3D erts_mk_magic_binary_term(&hp,<br><br> = &MSO(p), context_b);<br class=3D"gmail_msg"><br><br> =C2=A0=C2=A0= =C2=A0=C2=A0 return ctx;<br class=3D"gmail_msg"><br><br> <br class=3D"gm= ail_msg"><br><br> <br class=3D"gmail_msg"><br><br> /Sverker, Erlang/O= TP</div><div text=3D"#000000" bgcolor=3D"#FFFFFF" class=3D"gmail_msg"><br c= lass=3D"gmail_msg"><br><br> <br class=3D"gmail_msg"><br><br> <br clas= s=3D"gmail_msg"><br><br> <div class=3D"m_-1052779652703312402moz-cite-pr= efix gmail_msg">On 01/20/2017 02:49 AM, Jeremy Huffman<br><br> wrote:<= br class=3D"gmail_msg"><br><br> </div><br><br> </div><div text=3D"#00= 0000" bgcolor=3D"#FFFFFF" class=3D"gmail_msg"><blockquote type=3D"cite" cla= ss=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg">I opened a Github i= ssue with zlib. <a class=3D"m_-1052779652703312402moz-txt-link-freetext gma= il_msg" href=3D"https://github.com/madler/zlib/issues/206" target=3D"_blank= ">https://github.com/madler/zlib/issues/206</a>.<br><br>Mark Adler (zlib ma= intainer'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 inadve= rtently stomping on the deflate state, e.g. with an<br><br>out-of-bounds wr= ite into memory, or perhaps that the code is trying to use<br><br>the defla= te 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, 2= 017 at 2:11 PM, Michel Boaventura <<br><br><a class=3D"m_-10527796527033= 12402moz-txt-link-abbreviated gmail_msg" href=3D"mailto:michel.boaventura@g= mail.com" target=3D"_blank">[email protected]</a>> wrote:<br><= br><br><br></pre><br><br> <blockquote type=3D"cite" class=3D"gmail_msg= "><br><br> <pre class=3D"gmail_msg">Hi,<br><br><br><br>I've done= the bisect and find the culprit: <a class=3D"m_-1052779652703312402moz-txt= -link-freetext gmail_msg" href=3D"https://github.com/" target=3D"_blank">ht= tps://github.com/</a><br><br>madler/zlib/commit/b516b4bdd7c0c9f0858adfebf73= 2089014f7b282. Before this<br><br>commit term_to_binary works and stop doin= g 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=3D"m_-1052= 779652703312402moz-txt-link-abbreviated gmail_msg" href=3D"mailto:michel.bo= [email protected]" target=3D"_blank">[email protected]</a>> w= rote:<br><br><br><br></pre><br><br> <blockquote type=3D"cite" class= =3D"gmail_msg"><br><br> <pre class=3D"gmail_msg">Hi all,<br><br><b= r><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=3D"m_-1052779652703312402moz-txt-link-rfc2396E gmail_msg" href=3D"m= ailto:[email protected]" target=3D"_blank"><jeremy@jeremyhuffman.= com></a><br><br>wrote:<br><br><br><br></pre><br><br> <blockquot= e type=3D"cite" class=3D"gmail_msg"><br><br> <pre class=3D"gmail= _msg">Yes it's exactly the same error message from dialyzer. And the fa= ct that<br><br>he's getting it on Gentoo which builds from source sugge= sts that it is not<br><br>simply a matter of recompiling the dependency cha= in, 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><b= r><br><br>On Thu, Jan 19, 2017 at 11:33 AM Kostis Sagonas <a class=3D"m_-10= 52779652703312402moz-txt-link-rfc2396E gmail_msg" href=3D"mailto:kostis@cs.= ntua.gr" target=3D"_blank"><[email protected]></a><br><br>wrote:<br><= br><br><br></pre><br><br> <blockquote type=3D"cite" class=3D"gma= il_msg"><br><br> <pre class=3D"gmail_msg">On 01/19/2017 03:42 = AM, Jeremy Huffman wrote:<br><br><br><br></pre><br><br> <block= quote type=3D"cite" class=3D"gmail_msg"><br><br> <pre class= =3D"gmail_msg">Hi,<br><br></pre><br><br> </blockquote><br><br>= <pre class=3D"gmail_msg"><br></pre><br><br> <blo= ckquote type=3D"cite" class=3D"gmail_msg"><br><br> <pre clas= s=3D"gmail_msg"><br></pre><br><br> </blockquote><br><br> = <pre class=3D"gmail_msg"><br></pre><br><br> <blockquot= e type=3D"cite" class=3D"gmail_msg"><br><br> <pre class=3D"g= mail_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=3D"gmail_msg">broke<br><br><br><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> <pre = class=3D"gmail_msg">dialyzer. I bisected the last few days of updates and t= hen narrowed<br><br></pre><br><br> </blockquote><br><br> = <pre class=3D"gmail_msg">the<br><br><br><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"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=3D"gmail_msg"><br></pre><br><br> <block= quote type=3D"cite" class=3D"gmail_msg"><br><br> <pre class= =3D"gmail_msg">released on the 15th as an emergency bug fix and does not fi= x the<br><br></pre><br><br> </blockquote><br><br> = <pre class=3D"gmail_msg"><br></pre><br><br> <blockquote type= =3D"cite" class=3D"gmail_msg"><br><br> <pre class=3D"gmail_m= sg">problem. Reverting my system back to 1.2.8 (the previous version<br><br= ></pre><br><br> </blockquote><br><br> <pre class= =3D"gmail_msg"><br></pre><br><br> <blockquote type=3D"cite" cl= ass=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg">packaged= for Arch) did resolve the issue.<br><br></pre><br><br> </bloc= kquote><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg"><br></pre><br><br> </blockquote= ><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"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=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> <pre= class=3D"gmail_msg">write a test program to demonstrate the problem to the= m. I thought I<br><br></pre><br><br> </blockquote><br><br> = <pre class=3D"gmail_msg"><br></pre><br><br> <blockq= uote type=3D"cite" class=3D"gmail_msg"><br><br> <pre class= =3D"gmail_msg">should at least report the issue in case others encounter it= .<br><br></pre><br><br> </blockquote><br><br> <pr= e class=3D"gmail_msg"><br></pre><br><br> <blockquote type=3D"c= ite" class=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg"><= br></pre><br><br> </blockquote><br><br> <pre clas= s=3D"gmail_msg"><br></pre><br><br> <blockquote type=3D"cite" c= lass=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg">To repr= oduce, one would need only install zlib 1.2.10 and then run:<br><br></pre><= br><br> </blockquote><br><br> <pre class=3D"gmail= _msg"><br></pre><br><br> <blockquote type=3D"cite" class=3D"gm= ail_msg"><br><br> <pre class=3D"gmail_msg"><br></pre><br><br= > </blockquote><br><br> <pre class=3D"gmail_msg">= <br></pre><br><br> <blockquote type=3D"cite" class=3D"gmail_ms= g"><br><br> <pre class=3D"gmail_msg">dialyzer --verbose --bu= ild_plt --apps erts --output_plt test.plt<br><br></pre><br><br> = </blockquote><br><br> <pre class=3D"gmail_msg"><br></pre><br= ><br> <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg"><br></pre><br><br> </bl= ockquote><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg">Output would be along the lines of:<br><br= ></pre><br><br> </blockquote><br><br> <pre class= =3D"gmail_msg"><br></pre><br><br> <blockquote type=3D"cite" cl= ass=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg"><br></pr= e><br><br> </blockquote><br><br> <pre class=3D"gm= ail_msg"><br></pre><br><br> <blockquote type=3D"cite" class=3D= "gmail_msg"><br><br> <pre class=3D"gmail_msg">dialyzer: Coul= d not get abstract code for file:<br><br></pre><br><br> </bloc= kquote><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg">/usr/lib/erlang/lib/erts-8.2/ebin/erlang.bea= m (please recompile it<br><br></pre><br><br> </blockquote><br>= <br> <pre class=3D"gmail_msg">with<br><br><br><br></pre><br><b= r> <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg">+debug_info)<br><br></pre><br><br> = </blockquote><br><br> <pre class=3D"gmail_msg"><br></= pre><br><br> <blockquote type=3D"cite" class=3D"gmail_msg"><br= ><br> <pre class=3D"gmail_msg"><br></pre><br><br> = </blockquote><br><br> <pre class=3D"gmail_msg"><br></pre><b= r><br> <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg">There are also errors when simply t= rying to do success typing analysis<br><br></pre><br><br> </bl= ockquote><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg">*using* any pre-existing PLT file, along l= ines of "this isn't a PLT<br><br></pre><br><br> </blo= ckquote><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> = <blockquote type=3D"cite" class=3D"gmail_msg"><br><br> = <pre class=3D"gmail_msg">file". The errors are not dependent up= on the version of Erlang<br><br></pre><br><br> </blockquote><b= r><br> <pre class=3D"gmail_msg">installed<br><br><br><br></pre= ><br><br> <blockquote type=3D"cite" class=3D"gmail_msg"><br><b= r> <pre class=3D"gmail_msg">- at least anything I tried that= was released on Arch in the 19.x<br><br></pre><br><br> </bloc= kquote><br><br> <pre class=3D"gmail_msg">branch<br><br><br><br= ></pre><br><br> <blockquote type=3D"cite" class=3D"gmail_msg">= <br><br> <pre class=3D"gmail_msg">will reproduce the problem= .<br><br></pre><br><br> </blockquote><br><br> <pr= e class=3D"gmail_msg"><br></pre><br><br> <blockquote type=3D"c= ite" class=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg"><= br></pre><br><br> </blockquote><br><br> <pre clas= s=3D"gmail_msg"><br></pre><br><br> <blockquote type=3D"cite" c= lass=3D"gmail_msg"><br><br> <pre class=3D"gmail_msg">Anyway,= I hope this report helps someone and I would be curious if<br><br></pre><b= r><br> </blockquote><br><br> <pre class=3D"gmail_= msg"><br></pre><br><br> <blockquote type=3D"cite" class=3D"gma= il_msg"><br><br> <pre class=3D"gmail_msg">anyone else reprod= uces it, or especially if they fail to reproduce it.<br><br></pre><br><br> = </blockquote><br><br> <pre class=3D"gmail_msg"><b= r><br><br><br><br>Earlier today (yesterday?), there was the following quest= ion on the<br><br><br><br>erlang-questions mailing list:<br><br><br><br><br= ><br><br><br> <a class=3D"m_-1052779652703312402moz-txt-link-freetext gma= il_msg" href=3D"http://erlang.org/pipermail/erlang-questions/2017-January/0= " target=3D"_blank">http://erlang.org/pipermail/erlang-questions/2017-Janua= ry/0</a><br><br>91434.html<br><br><br><br><br><br><br><br>I am willing to b= et that problem with binary_to_term is also caused by<br><br><br><br>zlib t= roubles.<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><b= r><br><br></pre><br><br> </blockquote><br><br> </blockq= uote><br><br> <pre class=3D"gmail_msg"><br><br><br>--<br><br>Miche= l Almada de Castro Boaventura<br><br>Analista de Sistemas<br><br>Laborat=C3= =B3rio de Software Livre - LSL<br><br><br><br></pre><br><br> </block= quote><br><br> <pre class=3D"gmail_msg"><br><br><br><br><br>--<br><b= r>Michel Almada de Castro Boaventura<br><br>Analista de Sistemas<br><br>Lab= orat=C3=B3rio de Software Livre - LSL<br><br><br><br></pre><br><br> </= blockquote><br><br> <pre class=3D"gmail_msg"><br></pre><br><br> <= br class=3D"gmail_msg"><br><br> <fieldset class=3D"m_-1052779652703312= 402mimeAttachmentHeader gmail_msg"></fieldset><br><br> <br class=3D"gm= ail_msg"><br><br> </blockquote></div><div text=3D"#000000" bgcolor=3D"= #FFFFFF" class=3D"gmail_msg"><blockquote type=3D"cite" class=3D"gmail_msg">= <pre class=3D"gmail_msg">_______________________________________________<br= ><br>erlang-bugs mailing list<br><br><a class=3D"m_-1052779652703312402moz-= txt-link-abbreviated gmail_msg" href=3D"mailto:[email protected]" targ= et=3D"_blank">[email protected]</a><br><br><a class=3D"m_-105277965270= 3312402moz-txt-link-freetext gmail_msg" href=3D"http://erlang.org/mailman/l= istinfo/erlang-bugs" target=3D"_blank">http://erlang.org/mailman/listinfo/e= rlang-bugs</a><br><br></pre><br><br> </blockquote><br><br> <br class= =3D"gmail_msg"><br><br> </div><br><br><br><br></blockquote></div></div> --f403045f4e80c2768c0546890f20-- --===============6348004545125696673== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ erlang-bugs mailing list [email protected] http://erlang.org/mailman/listinfo/erlang-bugs --===============6348004545125696673==--