[Bug 253318] lldb: aborted when debugging named
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Mon Feb 8 20:09:51 UTC 2021
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253318
--- Comment #5 from Dimitry Andric <dim at FreeBSD.org> ---
Looking at the stack trace, it seems the line editor was processing a tab
keypress (while being in libedit via el_wgets), and then the autocompletion
stuff got some error, which it tried to print via PrintAsync.
That uses a non-recursive mutex 'm_output_mutex' in the EditLine class, which
is also locked just before calling into el_wgets(). So I think it's getting a
EDEADLK, as described in lib/libthr/thread/thr_mutex.c:
885 static int
886 mutex_self_lock(struct pthread_mutex *m, const struct timespec
*abstime)
887 {
888 struct timespec ts1, ts2;
889 int ret;
890
891 switch (PMUTEX_TYPE(m->m_flags)) {
892 case PTHREAD_MUTEX_ERRORCHECK:
893 case PTHREAD_MUTEX_ADAPTIVE_NP:.
894 if (abstime) {
...
904 } else {
905 /*
906 * POSIX specifies that mutexes should return
907 * EDEADLK if a recursive lock is detected.
908 */
909 ret = EDEADLK;
910 }
I think this is an upstream bug. But it would be handy to have an easier
reproduction scenario.
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list