<html>
    <head>
      <base href="http://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - apparent thread race condition crash in lld 4.0.0"
   href="http://bugs.llvm.org/show_bug.cgi?id=32459">32459</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>apparent thread race condition crash in lld 4.0.0
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>lld
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>FreeBSD
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>ELF
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>emaste@freebsd.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Sadly I do not have more details -- this happened while building FreeBSD world
with LLD 4.0.0, which is now included in the base system, and the LLD used by
the build does not have debug enabled. I'm submitting this bug in case we see
additional cases of this; I'll try to test with tsan, and presume this will be
closed as "not reproducible" after sufficient time if we don't see it again.

I restarted the build and it completed successfully, including the link that
crashed on the first attempt -- so one crash out of thousands of invocations.

Version:

% ld.lld --version
LLD 4.0.0 (FreeBSD 297347) (compatible with GNU linkers)

Crash location:

(lldb) bt
* thread #1, name = 'ld.lld', stop reason = signal SIGSEGV
  * frame #0: 0x00000000019b2cb9 ld`_pthread_setspecific + 121
    frame #1: 0x000000000040dcf4
ld`_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZZN3lld8internal18ThreadPoolExecutorC1EjENKUlvE_clEvEUlvE_EEEEEPvSD_
+ 52
    frame #2: 0x00000000019b8d35 ld`thread_start + 325

(lldb) thread list
Process 0 stopped
* thread #1: tid = 102025, 0x00000000019b2cb9 ld`_pthread_setspecific + 121,
name = 'ld.lld', stop reason = signal SIGSEGV
  thread #2: tid = 101771, 0x0000000001a549ea ld`__sys_openat + 10, name =
'ld.lld', stop reason = signal SIGSEGV
  thread #3: tid = 101438, 0x00000000019bb15c ld`_umtx_op_err + 12, name =
'ld.lld', stop reason = signal SIGSEGV
  thread #4: tid = 101635, 0x00000000019bb15c ld`_umtx_op_err + 12, name =
'ld.lld', stop reason = signal SIGSEGV
  thread #5: tid = 101642, 0x00000000019b8bf0 ld`thread_start, name = 'ld.lld',
stop reason = signal SIGSEGV
  thread #6: tid = 101644, 0x00000000019b8bf0 ld`thread_start, name = 'ld.lld',
stop reason = signal SIGSEGV
  thread #7: tid = 101667, 0x00000000019bb15c ld`_umtx_op_err + 12, name =
'ld.lld', stop reason = signal SIGSEGV
  thread #8: tid = 102024, 0x00000000019bb15c ld`_umtx_op_err + 12, name =
'ld.lld', stop reason = signal SIGSEGV
  thread #9: tid = 102070, 0x00000000019b8bf0 ld`thread_start, name = 'ld.lld',
stop reason = signal SIGSEGV
  thread #10: tid = 102071, 0x00000000019b8bf0 ld`thread_start, name =
'ld.lld', stop reason = signal SIGSEGV

% /usr/local/bin/c++filt
_ZNSt3__114__thread_proxyINS_5tupleIJNS_10unique_ptrINS_15__thread_structENS_14default_deleteIS3_EEEEZZN3lld8internal18ThreadPoolExecutorC1EjENKUlvE_clEvEUlvE_EEEEEPvSD_
void*
std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct,
std::__1::default_delete<std::__1::__thread_struct> >,
lld::internal::ThreadPoolExecutor::ThreadPoolExecutor(unsigned
int)::{lambda()#1}::operator()() const::{lambda()#1}>
<span class="quote">>(lld::internal::ThreadPoolExecutor::ThreadPoolExecutor(unsigned</span >
int)::{lambda()#1}::operator()() const::{lambda()#1})</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>