<html>
<head>
<base href="http://llvm.org/bugs/" />
</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 --- - Assertion failed: (rwlock != nullptr), function writer_acquire, file RWMutex.cpp, line 100."
href="http://llvm.org/bugs/show_bug.cgi?id=22291">22291</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>Assertion failed: (rwlock != nullptr), function writer_acquire, file RWMutex.cpp, line 100.
</td>
</tr>
<tr>
<th>Product</th>
<td>clang
</td>
</tr>
<tr>
<th>Version</th>
<td>3.5
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>MacOS X
</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>-New Bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedclangbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>kirill.ignatiev@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>llvmbugs@cs.uiuc.edu
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>On OSX 10.9.5, I use Julia-0.3.4 (prebuilt binaries;
<a href="https://github.com/JuliaLang/julia">https://github.com/JuliaLang/julia</a>), llvm 3.5.1 (built from source, using
homebrew).
I installed the Clang.jl package (<a href="https://github.com/ihnorton/Clang.jl">https://github.com/ihnorton/Clang.jl</a>), 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</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>