llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.12k stars 11.61k forks source link

bolt: inline-debug-info.test fails on GitHub actions runner #109231

Open tstellar opened 6 days ago

tstellar commented 6 days ago

I'm seeing the inline-debug-info.test test fail on the GitHub actions runner when building the 19.1.0 release. I tried to reproduce this on my local system using the exact same binary that was used on the runner, but I wasn't able to reproduce it.

The test crashes here is the backtrace:

 #1 0x0000564d0d8342ce SignalHandler(int) Signals.cpp:0:0
 #2 0x00007f4554642520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #3 0x0000564d0e045b01 llvm::bolt::BinaryContext::addDebugFilenameToUnit(unsigned int, unsigned int, unsigned int) (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x51cfb01)
 #4 0x0000564d0e055ef4 (anonymous namespace)::BinaryEmitter::emitFunctionBody(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&, bool) (.llvm.4007422419785425098) BinaryEmitter.cpp:0:0
 #5 0x0000564d0e057052 (anonymous namespace)::BinaryEmitter::emitFunction(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&) BinaryEmitter.cpp:0:0
 #6 0x0000564d0e0567f6 (anonymous namespace)::BinaryEmitter::emitFunctions()::$_0::operator()(std::vector<llvm::bolt::BinaryFunction*, std::allocator<llvm::bolt::BinaryFunction*>> const&) const BinaryEmitter.cpp:0:0
 #7 0x0000564d0e0548dc llvm::bolt::emitBinaryContext(llvm::MCStreamer&, llvm::bolt::BinaryContext&, llvm::StringRef) (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x51de8dc)
 #8 0x0000564d0d8aeff1 llvm::bolt::RewriteInstance::run() (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x4a38ff1)
 #9 0x0000564d0be7bc5d main (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x3005c5d)
#10 0x00007f4554629d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#11 0x00007f4554629e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#12 0x0000564d0be6e1e5 _start (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x2ff81e5)

Full build log is here: https://github.com/llvm/llvm-project/actions/runs/10904034079/job/30296200517

Object disassembly from around the crash.

 51cfac4:       eb 28                   jmp    51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e>
 51cfac6:       4c 8b 64 24 70          mov    0x70(%rsp),%r12
 51cfacb:       f6 44 24 78 01          testb  $0x1,0x78(%rsp)
 51cfad0:       75 0c                   jne    51cfade <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x13e>
 51cfad2:       eb 1a                   jmp    51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e>
 51cfad4:       45 31 e4                xor    %r12d,%r12d
 51cfad7:       f6 44 24 78 01          testb  $0x1,0x78(%rsp)
 51cfadc:       74 10                   je     51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e>
 51cfade:       48 8b 7c 24 70          mov    0x70(%rsp),%rdi
 51cfae3:       48 85 ff                test   %rdi,%rdi
 51cfae6:       74 06                   je     51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e>
 51cfae8:       48 8b 07                mov    (%rdi),%rax
 51cfaeb:       ff 50 08                call   *0x8(%rax)
 51cfaee:       41 ff ce                dec    %r14d
 51cfaf1:       49 8b 44 24 60          mov    0x60(%r12),%rax
 51cfaf6:       4c 89 f1                mov    %r14,%rcx
 51cfaf9:       48 c1 e1 07             shl    $0x7,%rcx
 51cfafd:       4e 8d 2c f1             lea    (%rcx,%r14,8),%r13
 51cfb01:       4a 8b 44 28 30          mov    0x30(%rax,%r13,1),%rax
 51cfb06:       48 8d 0d 7b 21 18 fb    lea    -0x4e7de85(%rip),%rcx        # 351c88 <.str.1.llvm.14559657567292622853>
 51cfb0d:       48 89 4c 24 58          mov    %rcx,0x58(%rsp)
 51cfb12:       48 85 c0                test   %rax,%rax
 51cfb15:       0f 84 db 00 00 00       je     51cfbf6 <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x256>
 51cfb1b:       49 8b 4c 24 48          mov    0x48(%r12),%rcx
 51cfb20:       48 8d 04 40             lea    (%rax,%rax,2),%rax
 51cfb24:       48 c1 e0 04             shl    $0x4,%rax
 51cfb28:       0f 10 44 01 d0          movups -0x30(%rcx,%rax,1),%xmm0
 51cfb2d:       0f 10 4c 01 e0          movups -0x20(%rcx,%rax,1),%xmm1
 51cfb32:       0f 10 54 01 f0          movups -0x10(%rcx,%rax,1),%xmm2
 51cfb37:       0f 29 94 24 90 00 00    movaps %xmm2,0x90(%rsp)
 51cfb3e:       00 
 51cfb3f:       0f 29 8c 24 80 00 00    movaps %xmm1,0x80(%rsp)
 51cfb46:       00 
 51cfb47:       0f 29 44 24 70          movaps %xmm0,0x70(%rsp)
 51cfb4c:       c6 84 24 a0 00 00 00    movb   $0x1,0xa0(%rsp)
 51cfb53:       01 
 51cfb54:       48 8d 7c 24 30          lea    0x30(%rsp),%rdi
 51cfb59:       48 8d 74 24 70          lea    0x70(%rsp),%rsi
 51cfb5e:       e8 ed 35 b0 00          call   5cd3150 <_ZNK4llvm14DWARFFormValue12getAsCStringEv>
llvmbot commented 6 days ago

@llvm/issue-subscribers-bolt

Author: Tom Stellard (tstellar)

I'm seeing the inline-debug-info.test test fail on the GitHub actions runner when building the 19.1.0 release. I tried to reproduce this on my local system using the exact same [binary](https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.0/LLVM-19.1.0-Linux-X64.tar.xz) that was used on the runner, but I wasn't able to reproduce it. The test crashes here is the backtrace: ``` #0 0x0000564d0d8338e1 PrintStackTraceSignalHandler(void*) (.llvm.6619503402611545084) Signals.cpp:0:0 #1 0x0000564d0d8342ce SignalHandler(int) Signals.cpp:0:0 #2 0x00007f4554642520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520) #3 0x0000564d0e045b01 llvm::bolt::BinaryContext::addDebugFilenameToUnit(unsigned int, unsigned int, unsigned int) (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x51cfb01) #4 0x0000564d0e055ef4 (anonymous namespace)::BinaryEmitter::emitFunctionBody(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&, bool) (.llvm.4007422419785425098) BinaryEmitter.cpp:0:0 #5 0x0000564d0e057052 (anonymous namespace)::BinaryEmitter::emitFunction(llvm::bolt::BinaryFunction&, llvm::bolt::FunctionFragment&) BinaryEmitter.cpp:0:0 #6 0x0000564d0e0567f6 (anonymous namespace)::BinaryEmitter::emitFunctions()::$_0::operator()(std::vector<llvm::bolt::BinaryFunction*, std::allocator<llvm::bolt::BinaryFunction*>> const&) const BinaryEmitter.cpp:0:0 #7 0x0000564d0e0548dc llvm::bolt::emitBinaryContext(llvm::MCStreamer&, llvm::bolt::BinaryContext&, llvm::StringRef) (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x51de8dc) #8 0x0000564d0d8aeff1 llvm::bolt::RewriteInstance::run() (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x4a38ff1) #9 0x0000564d0be7bc5d main (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x3005c5d) #10 0x00007f4554629d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90) #11 0x00007f4554629e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40) #12 0x0000564d0be6e1e5 _start (/mnt/build/tools/clang/stage2-bins/bin/llvm-bolt+0x2ff81e5) ``` Full build log is here: https://github.com/llvm/llvm-project/actions/runs/10904034079/job/30296200517 Object disassembly from around the crash. ``` 51cfac4: eb 28 jmp 51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e> 51cfac6: 4c 8b 64 24 70 mov 0x70(%rsp),%r12 51cfacb: f6 44 24 78 01 testb $0x1,0x78(%rsp) 51cfad0: 75 0c jne 51cfade <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x13e> 51cfad2: eb 1a jmp 51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e> 51cfad4: 45 31 e4 xor %r12d,%r12d 51cfad7: f6 44 24 78 01 testb $0x1,0x78(%rsp) 51cfadc: 74 10 je 51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e> 51cfade: 48 8b 7c 24 70 mov 0x70(%rsp),%rdi 51cfae3: 48 85 ff test %rdi,%rdi 51cfae6: 74 06 je 51cfaee <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x14e> 51cfae8: 48 8b 07 mov (%rdi),%rax 51cfaeb: ff 50 08 call *0x8(%rax) 51cfaee: 41 ff ce dec %r14d 51cfaf1: 49 8b 44 24 60 mov 0x60(%r12),%rax 51cfaf6: 4c 89 f1 mov %r14,%rcx 51cfaf9: 48 c1 e1 07 shl $0x7,%rcx 51cfafd: 4e 8d 2c f1 lea (%rcx,%r14,8),%r13 51cfb01: 4a 8b 44 28 30 mov 0x30(%rax,%r13,1),%rax 51cfb06: 48 8d 0d 7b 21 18 fb lea -0x4e7de85(%rip),%rcx # 351c88 <.str.1.llvm.14559657567292622853> 51cfb0d: 48 89 4c 24 58 mov %rcx,0x58(%rsp) 51cfb12: 48 85 c0 test %rax,%rax 51cfb15: 0f 84 db 00 00 00 je 51cfbf6 <_ZN4llvm4bolt13BinaryContext22addDebugFilenameToUnitEjjj+0x256> 51cfb1b: 49 8b 4c 24 48 mov 0x48(%r12),%rcx 51cfb20: 48 8d 04 40 lea (%rax,%rax,2),%rax 51cfb24: 48 c1 e0 04 shl $0x4,%rax 51cfb28: 0f 10 44 01 d0 movups -0x30(%rcx,%rax,1),%xmm0 51cfb2d: 0f 10 4c 01 e0 movups -0x20(%rcx,%rax,1),%xmm1 51cfb32: 0f 10 54 01 f0 movups -0x10(%rcx,%rax,1),%xmm2 51cfb37: 0f 29 94 24 90 00 00 movaps %xmm2,0x90(%rsp) 51cfb3e: 00 51cfb3f: 0f 29 8c 24 80 00 00 movaps %xmm1,0x80(%rsp) 51cfb46: 00 51cfb47: 0f 29 44 24 70 movaps %xmm0,0x70(%rsp) 51cfb4c: c6 84 24 a0 00 00 00 movb $0x1,0xa0(%rsp) 51cfb53: 01 51cfb54: 48 8d 7c 24 30 lea 0x30(%rsp),%rdi 51cfb59: 48 8d 74 24 70 lea 0x70(%rsp),%rsi 51cfb5e: e8 ed 35 b0 00 call 5cd3150 <_ZNK4llvm14DWARFFormValue12getAsCStringEv> ```