Florent -- I've updated https://github.com/freenet/scripts/pull/12 per
your comment.

Usually my log files make it to devl, not sure why recent ones haven't.
Temporary file link - https://cryptnode.org/temp/verify-1475.log

--Byron

On 07/01/2016 11:56 AM, CryptNode wrote:
> I was able to verify this build. Log file attached.
>
> Ran verify-build after installing Oracle jdk1.7.0_79 instead of
> openjdk-7u101. Thank you Bert for explaining how you tested the
> differences, and Florent for reporting which version of java you used.
>
> PR for scripts/README.md is still open -
> https://github.com/freenet/scripts/pull/12/files
>
> --Byron
>
> On 06/29/2016 06:09 AM, Florent Daigniere wrote:
>> 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
>>>
>>>
>>> _______________________________________________
>>> 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

Reply via email to