Frequent startup hangs on MacOS 14.5 (Sonoma) amd64
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
SBCL |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
After a software updates yesterday to the latest MacOS (Sonoma 14.5) and latest Macports on an amd64, all versions of SBCL I have access to frequently hang during startup, but with differing frequencies under different terminal emulators and user privilege levels.
SBCL versions tested: 2.2.9 from sbcl.org/
uname -a: Darwin flint.local 23.5.0 Darwin Kernel Version 23.5.0: Wed May 1 20:09:52 PDT 2024; root:xnu-
Observable behavior: SBCL prints the banner, never gets to the prompt. Externally, top shows an SBCL process consuming 100% of a CPU with a single thread and a flat virtual memory utilization for however long I wait (I've waited up to 5 minutes).
Every time I send a SIGABRT, the backtrace looks like the one below; the hang always happens in SB-THREAD:
Frequency of occurrence: the hang has occurred 100% of the ~30 times I've tried running SBCL as an unprivileged user in an XTerm or Rxvt; once out of ~10 times I've run SBCL inside an Emacs *shell* buffer or *inferior-lisp* buffer; perhaps once every 5 times I've tried running SBCL in Terminal.app. (Environment variables and ulimit settings below.) I've been unable to reproduce the hang while running SBCL as root in any of these terminal emulators (about 20 tries). I haven't been terribly methodical here, could be moreso if needed. All 3 SBCL versions mentioned above appear to evince the same propensity to hang within each of terminal emulator as an unprivileged user.
If anybody has suggestions for how to debug this, please let me know.
Representative backtrace:
--
$ ./run-sbcl.sh --no-userinit --no-sysinit
This is SBCL 2.4.4.144-
More information about SBCL is available at <http://
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses. See the CREDITS and COPYING files in the
distribution for more information.
dcount: 0. <------
fatal error encountered in SBCL pid 50640 pthread 0x7ff850490fc0:
SIGABRT received.
Welcome to LDB, a low-level debugger for the Lisp runtime environment.
ldb> ba
Backtrace:
Warning: lisp package array is not initialized for C
0: fp=0x18dfd48 pc=0x54878b52 <??? type 45>::INIT-
1: fp=0x18dfd90 pc=0x5488e8cb (FLET "WITHOUT-
2: fp=0x18dfdd8 pc=0x5488e584 <??? type 45>::REINIT
3: fp=0x18dfe70 pc=0x54baf271 (FLET <??? type 45>::BODY :IN <??? type 45>::START-LISP)
4: fp=0x18dff30 pc=0x54baf09b (FLET "WITHOUT-
5: fp=0x18dffc8 pc=0x54baeec8 <??? type 45>::%START-LISP
ldb> q
--
The rest of this report is environment variables and ulimits under various terminal emulators, in case they're relevant.
UXTerm (100% frequency)
--
$ env; ulimit -a
TERM=xterm
SHELL=/bin/bash
TMPDIR=
WINDOWID=12582924
XAPPLRESDIR=
XTERM_SHELL=
USER=kreuter
COMMAND_
SSH_AUTH_
__CF_USER_
PATH=/usr/
__CFBundleIdent
PWD=/Users/
XPC_FLAGS=0x0
PS1=\h\$
XTERM_VERSION=
XTERM_LOCALE=
XPC_SERVICE_NAME=0
TEXINPUTS=
SHLVL=1
HOME=/Users/kreuter
PARINIT=rTbgq B=.,?_A_a Q=_s>|
LOGNAME=kreuter
LC_CTYPE=
DISPLAY=
X11_PREFS_
_=/usr/bin/env
OLDPWD=
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 4864
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2784
virtual memory (kbytes, -v) unlimited
--
URxvt (100% frequency)
--
$ env; ulimit -a
TERM=rxvt-
SHELL=/bin/bash
TMPDIR=
WINDOWID=25165831
XAPPLRESDIR=
XTERM_SHELL=
USER=kreuter
COMMAND_
SSH_AUTH_
__CF_USER_
PATH=/usr/
STY=15994.
__CFBundleIdent
PWD=/Users/
XPC_FLAGS=0x0
PS1=\h\$
XTERM_VERSION=
XTERM_LOCALE=
XPC_SERVICE_NAME=0
TEXINPUTS=
COLORFGBG=0;15
SHLVL=3
HOME=/Users/kreuter
PARINIT=rTbgq B=.,?_A_a Q=_s>|
LOGNAME=kreuter
WINDOW=2
LC_CTYPE=
DISPLAY=
X11_PREFS_
COLORTERM=rxvt
_=/usr/bin/env
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 4864
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2784
virtual memory (kbytes, -v) unlimited
--
Terminal.app (low-ish frequency)
--
$ env; ulimit -a
TERM_PROGRAM=
SHELL=/bin/bash
TERM=xterm-256color
TMPDIR=
TERM_PROGRAM_
OLDPWD=
TERM_SESSION_
USER=kreuter
SSH_AUTH_
PATH=/usr/
__CFBundleIdent
PWD=/Users/
LANG=en_US.UTF-8
XPC_FLAGS=0x0
XPC_SERVICE_NAME=0
SHLVL=1
HOME=/Users/kreuter
LOGNAME=kreuter
DISPLAY=
_=/usr/bin/env
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 2560
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 2784
virtual memory (kbytes, -v) unlimited
--
Emacs *shell* buffer (very low frequency)
--
$ env; ulimit -a
SHELL=/bin/bash
TERM=dumb
TMPDIR=
WINDOWID=14680076
OLDPWD=
XAPPLRESDIR=
USER=kreuter
XTERM_SHELL=
COMMAND_
SSH_AUTH_
TERMCAP=
__CF_USER_
COLUMNS=80
PATH=/usr/
STY=15994.
__CFBundleIdent
PWD=/Users/
XPC_FLAGS=0x0
PS1=\h\$
XPC_SERVICE_NAME=0
XTERM_LOCALE=
XTERM_VERSION=
TEXINPUTS=
HOME=/Users/kreuter
SHLVL=3
PARINIT=rTbgq B=.,?_A_a Q=_s>|
LOGNAME=kreuter
WINDOW=0
LC_CTYPE=
DISPLAY=
X11_PREFS_
INSIDE_
_=/usr/bin/env
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 4864
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 9788
cpu time (seconds, -t) unlimited
max user processes (-u) 2784
virtual memory (kbytes, -v) unlimited
--
Changed in sbcl: | |
status: | New → Fix Committed |
Changed in sbcl: | |
status: | Fix Committed → Fix Released |
Can you get a C backtrace for this?