Hmm, yeah it's my fault... 1475 was compiled with Oracle's jdk1.7.0_79
I'll ensure that I use the debian/openjdk version the script expects in
the future...

Florent

On Wed, 2016-06-29 at 11:55 +0200, Bert Massop wrote:
> Let's analyze the smallest class file for which you observe a
> difference.
> That happens to be freenet/clients/fcp/ClientRequest$4.class.
> Fortunately,
> the code for ClientRequest has not changed between 1473 and 1475, so
> the
> resulting file for both versions should be the same. Turns out they
> are not:
> 
> $ sha1sum ClientRequest\$4.class.1473 ClientRequest\$4.class.1475
> f535c7e5ff73ca200007f756076eabd0bfe08217  ClientRequest$4.class.1473
> fc4680b0be297136fe939617635aa2c5389e5525  ClientRequest$4.class.1475
> 
> So where are they different? Let's first convert them to one-byte-
> per-line
> hex (plus decimal, character) dumps and create a diff (result
> attached):
> $ hexdump -v -e '/1 "%02X (hex)"' -e '/1 " %03u (dec)"' -e '/1 "
> %_p\n"'
> ClientRequest\$4.class.1473 > CR4.hex.1473
> $ hexdump -v -e '/1 "%02X (hex)"' -e '/1 " %03u (dec)"' -e '/1 "
> %_p\n"'
> ClientRequest\$4.class.1475 > CR4.hex.1475
> $ diff -u CR4.hex.1473 CR4.hex.1475 > CR4.diff
> 
> The first difference is at byte 10, as indicated by your analysis.
> According to the class file format specification [0], this is the
> element
> count of the constant pool (the collection of constant strings,
> classes,
> interface names referenced in the class file). The count went up from
> 42 to
> 44 constants. Further analysis reveals that the Utf8 constants "ex"
> and
> "Ljava.lang.NoSuchFieldError" where added; and as such, the constant
> table
> has different indexes, leading to slightly different bytecode. Most
> other
> differences can be seen to be off-by-two errors indeed.
> 
> Where do these differences originate from? Further analysis of the
> differences between the byte code in these files reveals that this
> class is
> a SwitchMap (a jump table for the switch() statement), and that the
> sole
> difference is that the Java compiler has added additional runtime
> exception
> handling. This being an automatically generated class by the Java
> compiler,
> it gives clear evidence that differences in the build environment
> cause the
> validation error for this particular file.
> 
> I did not analyze the differences for all files, but it is quite
> likely
> that they are all related to differences in the build environment.
> From the
> META-INF difference, it is already clear that the two compiler
> versions
> used were not exactly equal.
> 
> Kind regards,
> Bert
> 
> [0] https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html
> 
> On Wed, Jun 29, 2016 at 7:58 AM, CryptNode <[email protected]>
> wrote:
> 
> > Temporary file link - https://cryptnode.org/temp/verify-1475-failed
> > .log
> > 
> > 
> > On 06/27/2016 05:28 AM, Bert Massop wrote:
> > > On Mon, Jun 27, 2016 at 5:27 AM, CryptNode <[email protected]
> > > >
> > wrote:
> > > 
> > > > This build is failing for me. Log file attached.
> > > > 
> > > You log file unfortunately did not arrive here. Can try to send
> > > it again,
> > > or upload it somewhere? (e.g. pastebin)
> > > 
> > > Thank you for validating the builds!
> > > 
> > > Imported Florent's key.
> > > > gpg --keyserver keys.gnupg.net --recv-key 0x7AA9C2A3
> > > > 
> > > > Using Debian 8.5 x64, ant 1.9.4-3, openjdk-7-jdk 7u101-2.6.6-
> > > > 1~deb8u1,
> > > > unzip 6.0-16+deb8u2
> > > > I was able to verify build 1474 using this VM.
> > > > 
> > > > --Byron
> > > > 
> > > > On 06/25/2016 04:32 AM, Florent Daigniere wrote:
> > > > > 2016-06-25
> > > > > 
> > > > > Freenet 0.7.5 build 1475 is now available. It materializes
> > > > > several
> > > > > months of work (the previous release was rushed to fix
> > > > > frostbite) and
> > > > > features some major changes. Your nodes should start auto-
> > > > > updating
> > > > > soon. This build will become mandatory on July 15th.
> > > _______________________________________________
> > > Devl mailing list
> > > [email protected]
> > > https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> > _______________________________________________
> > Devl mailing list
> > [email protected]
> > https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
> > 
> _______________________________________________
> Devl mailing list
> [email protected]
> https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Devl mailing list
[email protected]
https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to