https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=246630

            Bug ID: 246630
           Summary: stable/11 regression: base.txz reproducibility depends
                    on number of cpu cores
           Product: Base System
           Version: Unspecified
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: b...@freebsd.org
          Reporter: f...@fabiankeil.de

On a recent FreeBSD stable/11 the rescue binary content varies depending
on the number of cpu cores.

With a 2 core system I can reproduce the binaries from the official
11.4-BETA2 release, with a 4 core system I get different results:

SHA256 (/images/FreeBSD/FreeBSD-11.4-BETA2-amd64-r361067-official/rescue/cp) =
3c96ab697fc721c226f99971863bcadbbbc73ccfec1abe2f04cbce60e3276a89
SHA256
(/images/FreeBSD/FreeBSD-11.4-BETA2-amd64-r361067-rebuild-2cores-t520/rescue/cp)
= 3c96ab697fc721c226f99971863bcadbbbc73ccfec1abe2f04cbce60e3276a89
SHA256
(/images/FreeBSD/FreeBSD-11.4-BETA2-amd64-r361067-rebuild-4cores/rescue/cp) =
06e0b2964901fa02ed2f4e02c1334cb82ce1d97f4a6fc7a2632a6f74b35955d1

Diffoscope seems to indicate that some offsets are different.
The output starts with:

--- FreeBSD/FreeBSD-11.4-BETA2-amd64-r361067-official/rescue/cp
+++ FreeBSD/FreeBSD-11.4-BETA2-amd64-r361067-rebuild-4cores/rescue/cp
├── readelf --wide --sections {}
│ @@ -1,16 +1,16 @@
│  There are 19 section headers, starting at offset 0xa18bb0:
│  
│  Section Headers:
│    [Nr] Name              Type            Addr             Off    Size   ES
Flg Lk Inf Al
│    [ 0]                   NULL            0000000000000000 000000 000000 00  
   0   0  0
│    [ 1] .note.tag         NOTE            0000000000400190 000190 000030 00  
A  0   0  4
│    [ 2] .init             PROGBITS        00000000004001c0 0001c0 000018 00 
AX  0   0  4
│ -  [ 3] .text             PROGBITS        0000000000400200 000200 6dab08 00 
AX  0   0 64
│ -  [ 4] .fini             PROGBITS        0000000000adad08 6dad08 00000e 00 
AX  0   0  4
│ +  [ 3] .text             PROGBITS        0000000000400200 000200 6daa88 00 
AX  0   0 64
│ +  [ 4] .fini             PROGBITS        0000000000adac88 6dac88 00000e 00 
AX  0   0  4
│    [ 5] .rodata           PROGBITS        0000000000adb000 6db000 216bd8 00  
A  0   0 4096
│    [ 6] .eh_frame_hdr     PROGBITS        0000000000cf1bd8 8f1bd8 0245ec 00  
A  0   0  4
│    [ 7] .eh_frame         X86_64_UNWIND   0000000000d161c8 9161c8 0bb90c 00  
A  0   0  8
│    [ 8] .tdata            PROGBITS        0000000000fd2000 9d2000 000068 00
WAT  0   0 16
│    [ 9] .tbss             NOBITS          0000000000fd2070 9d2068 000840 00
WAT  0   0 16
│    [10] .ctors            PROGBITS        0000000000fd2070 9d2070 0000c0 00 
WA  0   0  8
│    [11] .dtors            PROGBITS        0000000000fd2130 9d2130 000018 00 
WA  0   0  8
├── readelf --wide --debug-dump=frames {}
│ @@ -9894,21179 +9894,21195 @@
│    DW_CFA_nop
│    DW_CFA_nop
│    DW_CFA_nop
│    DW_CFA_nop
│    DW_CFA_nop
│    DW_CFA_nop
│  
│ -00005ee0 0000002c 00005ee4 FDE cie=00000000 pc=0043c780..0043d57c
│ +00005ee0 0000002c 00005ee4 FDE cie=00000000 pc=0043c780..0043d4c3
│    DW_CFA_advance_loc: 1 to 0043c781
│    DW_CFA_def_cfa_offset: 16
│    DW_CFA_offset: r6 (rbp) at cfa-16
│    DW_CFA_advance_loc: 3 to 0043c784
│    DW_CFA_def_cfa_register: r6 (rbp)
│    DW_CFA_advance_loc: 16 to 0043c794
│    DW_CFA_offset: r3 (rbx) at cfa-56
│    DW_CFA_offset: r12 (r12) at cfa-48
│    DW_CFA_offset: r13 (r13) at cfa-40
│    DW_CFA_offset: r14 (r14) at cfa-32
│    DW_CFA_offset: r15 (r15) at cfa-24
│ -  DW_CFA_advance_loc2: 3554 to 0043d576
│ +  DW_CFA_advance_loc2: 3369 to 0043d4bd
│    DW_CFA_def_cfa: r7 (rsp) ofs 8
│ -  DW_CFA_advance_loc: 1 to 0043d577
│ +  DW_CFA_advance_loc: 1 to 0043d4be
│    DW_CFA_def_cfa: r6 (rbp) ofs 16
│    DW_CFA_nop
│    DW_CFA_nop

The whole diff in text format has a size of 217M so I'm not attaching it.

I first saw the issue after rebasing ElectroBSD on r360524 and confirmed
that it still exists in r360986.

The problem does not exist in r357496 and earlier but I don't yet know
the exact revision when the problem was introduced.

I can't reproduce the issue on FreeBSD-13.0-CURRENT amd64
using the 20200514-r361019 snapshot.

I haven't tested 12/stable.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
freebsd-bugs@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"

Reply via email to