[LLVMbugs] [Bug 22291] New: Assertion failed: (rwlock != nullptr), function writer_acquire, file RWMutex.cpp, line 100.

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jan 21 19:18:18 PST 2015


http://llvm.org/bugs/show_bug.cgi?id=22291

            Bug ID: 22291
           Summary: Assertion failed: (rwlock != nullptr), function
                    writer_acquire, file RWMutex.cpp, line 100.
           Product: clang
           Version: 3.5
          Hardware: PC
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: kirill.ignatiev at gmail.com
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

On OSX 10.9.5, I use Julia-0.3.4 (prebuilt binaries;
https://github.com/JuliaLang/julia), llvm 3.5.1 (built from source, using
homebrew).

I installed the Clang.jl package (https://github.com/ihnorton/Clang.jl), and
when trying to load, something triggered an assertion failure inside LLVM.

Assertion failed: (rwlock != nullptr), function writer_acquire, file
RWMutex.cpp, line 100.

I'm not terribly familiar with LLVM, and I'm be sure what went wrong where, but
maybe this is a bug in LLVM?

Here is the backtrace from lldb attached to the julia process:

(lldb) bt all
* thread #1: tid = 0x2560df, 0x00007fff8a17c866
libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread',
stop reason = signal SIGABRT
  * frame #0: 0x00007fff8a17c866 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff88b8235c libsystem_pthread.dylib`pthread_kill + 92
    frame #2: 0x000000011226d85b libLLVM-3.5.dylib`abort + 22
    frame #3: 0x000000011226d845 libLLVM-3.5.dylib`__assert_rtn + 81
    frame #4: 0x000000011226afea
libLLVM-3.5.dylib`llvm::sys::RWMutexImpl::writer_acquire() + 64
    frame #5: 0x0000000111e4ae18
libLLVM-3.5.dylib`llvm::sys::SmartRWMutex<true>::writer_acquire() + 26
    frame #6: 0x0000000111e7d36c
libLLVM-3.5.dylib`llvm::PassRegistry::addRegistrationListener(llvm::PassRegistrationListener*)
+ 26
    frame #7: 0x0000000111e726a7
libLLVM-3.5.dylib`llvm::cl::list<llvm::PassInfo const*, bool,
llvm::PassNameParser>::list<char [13], llvm::cl::desc,
llvm::cl::OptionHidden>(char const (&) [13], llvm::cl::desc const&,
llvm::cl::OptionHidden const&) + 175
    frame #8: 0x0000000111e736dc libLLVM-3.5.dylib`_GLOBAL__I_a + 1164
    frame #9: 0x00007fff5fc11c2e
dyld`ImageLoaderMachO::doModInitFunctions(ImageLoader::LinkContext const&) +
268
    frame #10: 0x00007fff5fc11dba
dyld`ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) + 40
    frame #11: 0x00007fff5fc0ea62
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 308
    frame #12: 0x00007fff5fc0e9eb
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 189
    frame #13: 0x00007fff5fc0e9eb
dyld`ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&,
unsigned int, ImageLoader::InitializerTimingList&) + 189
    frame #14: 0x00007fff5fc0e8f6
dyld`ImageLoader::runInitializers(ImageLoader::LinkContext const&,
ImageLoader::InitializerTimingList&) + 54
    frame #15: 0x00007fff5fc04b0e dyld`dyld::runInitializers(ImageLoader*) + 89
    frame #16: 0x00007fff5fc0b7cf dyld`dlopen + 538
    frame #17: 0x00007fff8e06c7ee libdyld.dylib`dlopen + 59
    frame #18: 0x0000000100062a1c libjulia.dylib`jl_load_dynamic_library_
[inlined] jl_uv_dlopen(filename=0x6b2f73726573552f) + 15 at dlload.c:48
    frame #19: 0x0000000100062a0d
libjulia.dylib`jl_load_dynamic_library_(modname=0x0000000110139f80,
flags=<unavailable>, throw_err=0) + 829 at dlload.c:134
    frame #20: 0x00000001017b38a8
    frame #21: 0x00000001017b37fc
    frame #22: 0x00000001000120e4 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbfccc8, nargs=2) + 244 at
julia.h:981
    frame #23: 0x00000001000120d8
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbfccc8,
nargs=2) + 232 at gf.c:1430
    frame #24: 0x00000001017b35c5
    frame #25: 0x00000001000120e4 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x0000000110b40a30, nargs=0) + 244 at
julia.h:981
    frame #26: 0x00000001000120d8
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x0000000110b40a30,
nargs=0) + 232 at gf.c:1430
    frame #27: 0x0000000100060011 libjulia.dylib`do_call [inlined]
jl_apply(f=<unavailable>, args=<unavailable>, nargs=2) + 209 at julia.h:981
    frame #28: 0x000000010006000a libjulia.dylib`do_call(f=<unavailable>,
args=<unavailable>, nargs=2, locals=<unavailable>, nl=<unavailable>) + 202 at
interpreter.c:65
    frame #29: 0x000000010005ea51 libjulia.dylib`eval(e=<unavailable>,
locals=0x00007fff5fbfd3e0, nl=1) + 1169 at interpreter.c:207
    frame #30: 0x000000010005ec44 libjulia.dylib`eval(e=<unavailable>,
locals=0x00007fff5fbfd3e0, nl=1) + 1668 at interpreter.c:215
    frame #31: 0x000000010005fc26
libjulia.dylib`eval_body(stmts=0x0000000110121700, locals=0x00007fff5fbfd3e0,
nl=1, start=<unavailable>, toplevel=1) + 342 at interpreter.c:541
    frame #32: 0x000000010005fefa
libjulia.dylib`jl_interpret_toplevel_thunk_with(lam=<unavailable>,
loc=<unavailable>, nl=1) + 250 at interpreter.c:570
    frame #33: 0x000000010006d3aa
libjulia.dylib`jl_toplevel_eval_flex(e=<unavailable>, fast=<unavailable>) +
1258 at toplevel.c:511
    frame #34: 0x000000010006d93d
libjulia.dylib`jl_parse_eval_all(fname=<unavailable>) + 301 at toplevel.c:544
    frame #35: 0x000000010006db3b
libjulia.dylib`jl_load(fname=0x0000000110b09cb0) + 123 at toplevel.c:578
    frame #36: 0x0000000102863e40 sys.dylib`julia_include_2128 + 64
    frame #37: 0x0000000100012078 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbfd8b8, nargs=1) + 12 at julia.h:981
    frame #38: 0x000000010001206c
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbfd8b8,
nargs=1) + 124 at gf.c:1411
    frame #39: 0x0000000102a69dfb sys.dylib`julia_include_from_node1_18173 +
571
    frame #40: 0x0000000100012078 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbfd9f8, nargs=1) + 12 at julia.h:981
    frame #41: 0x000000010001206c
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbfd9f8,
nargs=1) + 124 at gf.c:1411
    frame #42: 0x0000000100060011 libjulia.dylib`do_call [inlined]
jl_apply(f=<unavailable>, args=<unavailable>, nargs=1) + 209 at julia.h:981
    frame #43: 0x000000010006000a libjulia.dylib`do_call(f=<unavailable>,
args=<unavailable>, nargs=1, locals=<unavailable>, nl=<unavailable>) + 202 at
interpreter.c:65
    frame #44: 0x000000010005ea51 libjulia.dylib`eval(e=<unavailable>,
locals=0x0000000000000000, nl=0) + 1169 at interpreter.c:207
    frame #45: 0x000000010006d394
libjulia.dylib`jl_toplevel_eval_flex(e=<unavailable>, fast=<unavailable>) +
1236 at toplevel.c:496
    frame #46: 0x000000010006cd13
libjulia.dylib`jl_eval_module_expr(ex=<unavailable>) + 675 at toplevel.c:145
    frame #47: 0x000000010006d078
libjulia.dylib`jl_toplevel_eval_flex(e=<unavailable>, fast=<unavailable>) + 440
at toplevel.c:388
    frame #48: 0x000000010006d93d
libjulia.dylib`jl_parse_eval_all(fname=<unavailable>) + 301 at toplevel.c:544
    frame #49: 0x000000010006db3b
libjulia.dylib`jl_load(fname=0x0000000104e02db0) + 123 at toplevel.c:578
    frame #50: 0x0000000102863e40 sys.dylib`julia_include_2128 + 64
    frame #51: 0x0000000100012078 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbfe338, nargs=1) + 12 at julia.h:981
    frame #52: 0x000000010001206c
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbfe338,
nargs=1) + 124 at gf.c:1411
    frame #53: 0x0000000102a69dfb sys.dylib`julia_include_from_node1_18173 +
571
    frame #54: 0x0000000100012078 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbfe478, nargs=1) + 12 at julia.h:981
    frame #55: 0x000000010001206c
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbfe478,
nargs=1) + 124 at gf.c:1411
    frame #56: 0x0000000100060011 libjulia.dylib`do_call [inlined]
jl_apply(f=<unavailable>, args=<unavailable>, nargs=1) + 209 at julia.h:981
    frame #57: 0x000000010006000a libjulia.dylib`do_call(f=<unavailable>,
args=<unavailable>, nargs=1, locals=<unavailable>, nl=<unavailable>) + 202 at
interpreter.c:65
    frame #58: 0x000000010005ea51 libjulia.dylib`eval(e=<unavailable>,
locals=0x0000000000000000, nl=0) + 1169 at interpreter.c:207
    frame #59: 0x000000010006d394
libjulia.dylib`jl_toplevel_eval_flex(e=<unavailable>, fast=<unavailable>) +
1236 at toplevel.c:496
    frame #60: 0x00000001000176a6 libjulia.dylib`jl_f_top_eval(F=<unavailable>,
args=<unavailable>, nargs=<unavailable>) + 294 at builtins.c:399
    frame #61: 0x00000001017b0b6b
    frame #62: 0x00000001017b0735
    frame #63: 0x00000001000120e4 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x0000000100016870, nargs=402208) + 244 at
julia.h:981
    frame #64: 0x00000001000120d8
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x0000000100016870,
nargs=402208) + 232 at gf.c:1430
    frame #65: 0x00000001017abb52
    frame #66: 0x00000001017ab743
    frame #67: 0x00000001000120e4 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbfef00, nargs=73712) + 244 at
julia.h:981
    frame #68: 0x00000001000120d8
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbfef00,
nargs=73712) + 232 at gf.c:1430
    frame #69: 0x000000010006e3f8 libjulia.dylib`eval_import_path_ [inlined]
jl_apply(args=0x000000010fefc590, nargs=<unavailable>) + 504 at julia.h:981
    frame #70: 0x000000010006e3f5
libjulia.dylib`eval_import_path_(args=0x000000010f6f7280,
retrying=<unavailable>) + 501 at toplevel.c:331
    frame #71: 0x000000010006d0f6 libjulia.dylib`jl_toplevel_eval_flex
[inlined] eval_import_path(args=<unavailable>) + 5 at toplevel.c:358
    frame #72: 0x000000010006d0f1
libjulia.dylib`jl_toplevel_eval_flex(e=<unavailable>, fast=<unavailable>) + 561
at toplevel.c:406
    frame #73: 0x00000001000176a6 libjulia.dylib`jl_f_top_eval(F=<unavailable>,
args=<unavailable>, nargs=<unavailable>) + 294 at builtins.c:399
    frame #74: 0x000000010178c2ea
    frame #75: 0x000000010178bd67
    frame #76: 0x0000000100012078 libjulia.dylib`jl_apply_generic [inlined]
jl_apply(f=<unavailable>, args=0x00007fff5fbff560, nargs=402208) + 12 at
julia.h:981
    frame #77: 0x000000010001206c
libjulia.dylib`jl_apply_generic(F=<unavailable>, args=0x00007fff5fbff560,
nargs=402208) + 124 at gf.c:1411
    frame #78: 0x0000000101787a83
    frame #79: 0x00000001000653b4 libjulia.dylib`jl_handle_stack_switch
[inlined] jl_apply(f=<unavailable>, args=<unavailable>, nargs=<unavailable>) +
132 at julia.h:981
    frame #80: 0x00000001000653b1 libjulia.dylib`jl_handle_stack_switch
[inlined] start_task(t=0x000000010ff1c820) + 76 at task.c:422
    frame #81: 0x0000000100065365 libjulia.dylib`jl_handle_stack_switch
[inlined] switch_stack(t=0x000000010ff1c820, where=<unavailable>) + 14 at
task.c:212
    frame #82: 0x0000000100065357 libjulia.dylib`jl_handle_stack_switch + 39 at
task.c:430
    frame #83: 0x0000000100064fc6 libjulia.dylib`julia_trampoline(argc=1,
argv=0x0000000100011ff0, pmain=0x0000000100001020) + 118 at init.c:1034
    frame #84: 0x00000001000009c4 julia`start + 52

  thread #2: tid = 0x2560f7, 0x00007fff8a178a1a
libsystem_kernel.dylib`mach_msg_trap + 10
    frame #0: 0x00007fff8a178a1a libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007fff8a177d18 libsystem_kernel.dylib`mach_msg + 64
    frame #2: 0x00007fff8a178576 libsystem_kernel.dylib`mach_msg_server + 387
    frame #3: 0x000000010006400d
libjulia.dylib`mach_segv_listener(arg=<unavailable>) + 29 at init.c:644
    frame #4: 0x00007fff88b81899 libsystem_pthread.dylib`_pthread_body + 138
    frame #5: 0x00007fff88b8172a libsystem_pthread.dylib`_pthread_start + 137
    frame #6: 0x00007fff88b85fc9 libsystem_pthread.dylib`thread_start + 13

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150122/da34c3da/attachment.html>


More information about the llvm-bugs mailing list