[lld][PECOFF] assert from lld once in 5 test runs.

Hi Rui,

Not sure if you have seen this problem, but I have been running into this problem when I run the lld tests and the failure occurence is once in 5 times.

lld: ../tools/lld/lib/Core/Resolver.cpp:402: void lld::Resolver::deadStripOptimize(): Assertion `symAtom' failed.
#0 0x4b05ae llvm::sys::PrintStackTrace(_IO_FILE*) /usr2/seaswara/work/llvmorg/llvm-build/../lib/Support/Unix/Signals.inc:422:15
#1 0x4b136b PrintStackTraceSignalHandler(void*) /usr2/seaswara/work/llvmorg/llvm-build/../lib/Support/Unix/Signals.inc:481:1
#2 0x4b2ee4 SignalHandler(int) /usr2/seaswara/work/llvmorg/llvm-build/../lib/Support/Unix/Signals.inc:198:60
#3 0x7fd12664bcb0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0xfcb0)
#4 0x7fd12587d0d5 gsignal /build/buildd/eglibc-2.15/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:64:0
#5 0x7fd12588083b abort /build/buildd/eglibc-2.15/stdlib/abort.c:93:0
#6 0x7fd125875d9e __assert_fail_base /build/buildd/eglibc-2.15/assert/assert.c:55:0
#7 0x7fd125875e42 (/lib/x86_64-linux-gnu/libc.so.6+0x2ee42)
#8 0x76ff7f lld::Resolver::deadStripOptimize() /usr2/seaswara/work/llvmorg/llvm-build/../tools/lld/lib/Core/Resolver.cpp:402:5
#9 0x770be5 lld::Resolver::resolve() /usr2/seaswara/work/llvmorg/llvm-build/../tools/lld/lib/Core/Resolver.cpp:481:7
#10 0x4538f4 lld::Driver::link(lld::LinkingContext&, llvm::raw_ostream&) /usr2/seaswara/work/llvmorg/llvm-build/../tools/lld/lib/Driver/Driver.cpp:108:8
#11 0x425c25 lld::WinLinkDriver::linkPECOFF(int, char const**, llvm::raw_ostream&) /usr2/seaswara/work/llvmorg/llvm-build/../tools/lld/lib/Driver/WinLinkDriver.cpp:879:10
#12 0x42238a lld::UniversalDriver::link(int, char const**, llvm::raw_ostream&) /usr2/seaswara/work/llvmorg/llvm-build/../tools/lld/lib/Driver/UniversalDriver.cpp:207:12
#13 0x421e76 main /usr2/seaswara/work/llvmorg/llvm-build/../tools/lld/tools/lld/lld.cpp:35:10
#14 0x7fd12586876d __libc_start_main /build/buildd/eglibc-2.15/csu/libc-start.c:258:0
#15 0x421d35 _start (/local/mnt/workspace/shankare/work/llvmorg/llvm-build/bin/lld+0x421d35)
Stack dump:
0. Program arguments: lld /out:/local/mnt/workspace/shankare/work/llvmorg/llvm-build/tools/lld/test/pecoff/Output/export.test.tmp5.dll /dll /entry:init /export:exportfn7 -- /local/mnt/workspace/shankare/work/llvmorg/llvm-build/tools/lld/test/pecoff/Output/export.test.tmp.obj -flavor link
/local/mnt/workspace/shankare/work/llvmorg/llvm-build/tools/lld/test/pecoff/Output/export.test.script: line 18: 16942 Aborted lld -flavor link /out:/local/mnt/workspace/shankare/work/llvmorg/llvm-build/tools/lld/test/pecoff/Output/export.test.tmp5.dll /dll /entry:init /export:exportfn7 -- /local/mnt/workspace/shankare/work/llvmorg/llvm-build/tools/lld/test/pecoff/Output/export.test.tmp.obj

Shankar Easwaran

On head? I submitted r230086 last week to mitigate the threading issue, but there may be other threading issue there. I don’t see that frequent failure, though. It may depends on machines as it’s not deterministic.

Yes, this is on HEAD.