Crash caused by SB-APROF
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
Observed on Darwin from running gc.impure.lisp with sb-aprof enabled:
::: UNEXPECTED-FAILURE :GC-WITHOUT-
"The value
Unhandled TYPE-ERROR in thread #<SB-THREAD:THREAD RUNNING {1002A5DDA3}>:
The value
NIL
is not of type
NIL
is not of type
SB-
Backtrace for: #<SB-THREAD:THREAD RUNNING {1002A5DDA3}>
0: (SB-DI:
1: (SB-KERNEL:
2: ("foreign function: call_into_lisp")
3: ("foreign function: funcall2")
4: ("foreign function: interrupt_
5: ("foreign function: signal_
6: ("bogus stack frame")
7: ("foreign function: _dispatch_
8: ("foreign function: thread_
9: ("foreign function: gc_stop_the_world")
10: (SB-KERNEL:
11: ((FLET "WITHOUT-
12: ((FLET "WITHOUT-
13: (SB-KERNEL:SUB-GC 0)
14: (GC :FULL NIL :GEN 0)
15: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
16: ((FLET "WITHOUT-
17: ((FLET SB-UNIX::BODY :IN SB-THREAD::RUN))
18: ((FLET "WITHOUT-
19: (SB-THREAD::RUN)
20: ("foreign function: call_into_lisp")
21: ("foreign function: funcall1")
unhandled condition in --disable-debugger mode, quitting
and then it hangs, despite saying that it's quitting.
This is involves fork, since it's under parallel-exec?
In the depths of _dispatch_ semaphore_ wait_slow I see
libdispatch. dylib`_ dispatch_ fork_becomes_ unsafe_ slow: unsafe_ fork
0x7fff201c90e8 <+0>: leaq 0x60491ca1(%rip), %rcx ; _dispatch_
0x7fff201c90ef <+7>: movb (%rcx), %al
0x7fff201c90f1 <+9>: movl %eax, %edx
0x7fff201c90f3 <+11>: orb $0x1, %dl
0x7fff201c90f6 <+14>: lock
0x7fff201c90f7 <+15>: cmpxchgb %dl, (%rcx)
0x7fff201c90fa <+18>: jne 0x7fff201c90f1 ; <+9>
0x7fff201c90fc <+20>: testb $0x2, %al
0x7fff201c90fe <+22>: jne 0x7fff201c9101 ; <+25>
0x7fff201c9100 <+24>: retq
0x7fff201c9101 <+25>: leaq 0x284c6(%rip), %rcx ; "BUG IN CLIENT OF LIBDISPATCH: Transition to multithreaded is prohibited"
0x7fff201c9108 <+32>: movq %rcx, 0x604c4679(%rip) ; gCRAnnotations + 8
0x7fff201c910f <+39>: ud2