On Dec 29, 2023, at 15:54, Samuel Thibault <sthiba...@debian.org> wrote: > > Hello, > > Geoff Shang, le jeu. 21 déc. 2023 19:39:42 +0200, a ecrit: >> On Thu, 21 Dec 2023, Samuel Thibault wrote: >> >>> thread apply all bt full >>> >>> :) >> >> OK, you got it. >> >> This produced 20 kb of output, so I've attached it. Let me know if anyone >> wants it included in the message instead. > > Attached is completely fine, thanks a lot! > > This is showing that it's alsa-lib which gets stuck. I tried to dive > into the source code, but I don't see yet how that can happen, a quick > review showed me that locking seems to be done properly. I'd probably > need a closer look since the hang *does* happen. > >> #4 0x00007fbedbb1a006 in snd_pcm_state () from >> /lib/x86_64-linux-gnu/libasound.so.2 >> No symbol table info available. >> #9 0x00007fbedb7fd872 in alsa_object_close () from >> /lib/x86_64-linux-gnu/libpcaudio.so.0 >> No symbol table info available. > > Would you be able to reproduce with these packages installed? > > libpcaudio0-dbgsym > libasound2-dbgsym
I have done, as Geoff has done, with these additional symbols. Please let us know if you need anything else. File attached. Thanks so much, Samuel. Happy New Year, --FC
GNU gdb (Debian 13.1-3) 13.1 Copyright (C) 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "aarch64-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://www.gnu.org/software/gdb/bugs/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from /usr/bin/espeakup... Reading symbols from /usr/lib/debug/.build-id/7c/ee622ad29eb52a84ecd41e5e9cb868d8d27eef.debug... Attaching to program: /usr/bin/espeakup, process 92856 [New LWP 92857] [New LWP 92858] [New LWP 92859] [New LWP 92860] [New LWP 92861] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/aarch64-linux-gnu/libthread_db.so.1". 0x0000ffff99c4b694 in __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=92857, futex_word=0xffff98f5f1b0) at ./nptl/futex-internal.c:57 Thread 6 (Thread 0xffff96aff0e0 (LWP 92861) "espeakup"): #0 0x0000ffff99c4b694 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0xffff99ff8c88 <my_cond_start_is_required+40>) at ./nptl/futex-internal.c:57 _x3tmp = 0 _x0tmp = 281473265405064 _x0 = 281473265405064 _x3 = 0 _x4tmp = 0 _x1tmp = 393 _x1 = 393 _x4 = 0 _x5tmp = 4294967295 _x2tmp = 0 _x2 = 0 _x5 = 4294967295 _x8 = 98 _sys_result = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> _sys_result = <optimized out> _x5tmp = <optimized out> _x4tmp = <optimized out> _x3tmp = <optimized out> _x2tmp = <optimized out> _x1tmp = <optimized out> _x0tmp = <optimized out> _x0 = <optimized out> _x1 = <optimized out> _x2 = <optimized out> _x3 = <optimized out> _x4 = <optimized out> _x5 = <optimized out> _x8 = <optimized out> #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0xffff99ff8c88 <my_cond_start_is_required+40>) at ./nptl/futex-internal.c:87 err = <optimized out> clockbit = 256 op = 393 err = <optimized out> clockbit = <optimized out> op = <optimized out> #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xffff99ff8c88 <my_cond_start_is_required+40>, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 No locals. #3 0x0000ffff99c4e1d0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xffff99ff8c28 <my_mutex>, cond=0xffff99ff8c60 <my_cond_start_is_required>) at ./nptl/pthread_cond_wait.c:503 spin = 0 buffer = {__routine = 0xffff99c4df14 <__condvar_cleanup_waiting>, __arg = 0xffff96afe828, __canceltype = -1711305632, __prev = 0x0} cbuffer = {wseq = 5364, cond = 0xffff99ff8c60 <my_cond_start_is_required>, mutex = 0xffff99ff8c28 <my_mutex>, private = 0} err = <optimized out> g = 0 flags = <optimized out> g1_start = <optimized out> maxspin = 0 signals = <optimized out> result = 0 wseq = 5364 seq = 2682 private = 0 maxspin = <optimized out> err = <optimized out> result = <optimized out> wseq = <optimized out> g = <optimized out> seq = <optimized out> flags = <optimized out> private = <optimized out> signals = <optimized out> done = <optimized out> g1_start = <optimized out> spin = <optimized out> buffer = <optimized out> cbuffer = <optimized out> s = <optimized out> #4 ___pthread_cond_wait (cond=cond@entry=0xffff99ff8c60 <my_cond_start_is_required>, mutex=mutex@entry=0xffff99ff8c28 <my_mutex>) at ./nptl/pthread_cond_wait.c:618 No locals. #5 0x0000ffff99f8f61c in polling_thread (p=<optimized out>) at src/libespeak-ng/event.c:263 a_stop_is_required = false __PRETTY_FUNCTION__ = "polling_thread" #6 0x0000ffff99c4ee18 in start_thread (arg=0xffff983775b7) at ./nptl/pthread_create.c:442 ret = <optimized out> pd = 0xffff983775b7 out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473209856224, 281473235515016, 281473235514806, 0, 8448416, 281473235514807, 281473201405952, 281473209856224, 281473201405952, 281473209858080, 281473209854080, 10644780780760906224, 0, 10644780780578127348, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #7 0x0000ffff99cb7e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79 No locals. Thread 5 (Thread 0xffff9732f0e0 (LWP 92860) "espeakup"): #0 0x0000ffff99c4b694 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0xaaaabff903f0 <runner_awake+40>) at ./nptl/futex-internal.c:57 _x3tmp = 0 _x0tmp = 187650341929968 _x0 = 187650341929968 _x3 = 0 _x4tmp = 0 _x1tmp = 393 _x1 = 393 _x4 = 0 _x5tmp = 4294967295 _x2tmp = 0 _x2 = 0 _x5 = 4294967295 _x8 = 98 _sys_result = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> _sys_result = <optimized out> _x5tmp = <optimized out> _x4tmp = <optimized out> _x3tmp = <optimized out> _x2tmp = <optimized out> _x1tmp = <optimized out> _x0tmp = <optimized out> _x0 = <optimized out> _x1 = <optimized out> _x2 = <optimized out> _x3 = <optimized out> _x4 = <optimized out> _x5 = <optimized out> _x8 = <optimized out> #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0xaaaabff903f0 <runner_awake+40>) at ./nptl/futex-internal.c:87 err = <optimized out> clockbit = 256 op = 393 err = <optimized out> clockbit = <optimized out> op = <optimized out> #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xaaaabff903f0 <runner_awake+40>, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 No locals. #3 0x0000ffff99c4e1d0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xaaaabff90338 <queue_guard>, cond=0xaaaabff903c8 <runner_awake>) at ./nptl/pthread_cond_wait.c:503 spin = 0 buffer = {__routine = 0xffff99c4df14 <__condvar_cleanup_waiting>, __arg = 0xffff9732e788, __canceltype = -1713957152, __prev = 0x0} cbuffer = {wseq = 3844, cond = 0xaaaabff903c8 <runner_awake>, mutex = 0xaaaabff90338 <queue_guard>, private = 0} err = <optimized out> g = 0 flags = <optimized out> g1_start = <optimized out> maxspin = 0 signals = <optimized out> result = 0 wseq = 3844 seq = 1922 private = 0 maxspin = <optimized out> err = <optimized out> result = <optimized out> wseq = <optimized out> g = <optimized out> seq = <optimized out> flags = <optimized out> private = <optimized out> signals = <optimized out> done = <optimized out> g1_start = <optimized out> spin = <optimized out> buffer = <optimized out> cbuffer = <optimized out> s = <optimized out> #4 ___pthread_cond_wait (cond=cond@entry=0xaaaabff903c8 <runner_awake>, mutex=mutex@entry=0xaaaabff90338 <queue_guard>) at ./nptl/pthread_cond_wait.c:618 No locals. #5 0x0000aaaabff732ac in espeak_thread (arg=0xffffe8793a38) at ../src/espeak.c:491 s = 0xffffe8793a38 #6 0x0000ffff99c4ee18 in start_thread (arg=0xffffe8793927) at ./nptl/pthread_create.c:442 ret = <optimized out> pd = 0xffffe8793927 out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473218441440, 281474582001968, 281474582001958, 0, 8448416, 281474582001959, 281473209991168, 281473218441440, 281473209991168, 281473218443296, 281473218439296, 10644780780760906224, 0, 10644780780605062644, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #7 0x0000ffff99cb7e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79 No locals. Thread 4 (Thread 0xffff97b3f0e0 (LWP 92859) "espeakup"): #0 0x0000ffff99cb0b48 in __GI___select (nfds=8, nfds@entry=0, readfds=readfds@entry=0xffff97b3e7f8, writefds=writefds@entry=0x0, exceptfds=exceptfds@entry=0x0, timeout=timeout@entry=0x0) at ../sysdeps/unix/sysv/linux/select.c:69 _x3tmp = 0 _x0tmp = 8 _x0 = 8 _x3 = 0 _x4tmp = 0 _x1tmp = 281473226893304 _x1 = 281473226893304 _x4 = 0 _x5tmp = 0 _x2tmp = 0 _x2 = 0 _x5 = 0 _x8 = 72 _sys_result = <optimized out> sc_ret = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> s = <optimized out> us = <optimized out> ns = <optimized out> ts64 = {tv_sec = 187650341815212, tv_nsec = 281473226893304} pts64 = 0x0 r = <optimized out> #1 0x0000aaaabff74408 in softsynth_thread (arg=<optimized out>) at ../src/softsynth.c:288 s = <optimized out> set = {__fds_bits = {136, 0 <repeats 15 times>}} length = <optimized out> buf = "\000\000e tick apt autoremove tick to remove them dot \000\000e and 0 not upgraded dot \000\000ate information. Done libasound2 dash dbgsym is already the newest version left paren 1.2.8 dash 1 plus b1 right pare"... cp = <optimized out> terminalFD = <optimized out> greatestFD = -1 #2 0x0000ffff99c4ee18 in start_thread (arg=0xffffe8793927) at ./nptl/pthread_create.c:442 ret = <optimized out> pd = 0xffffe8793927 out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473226895584, 281474582001968, 281474582001958, 0, 8448416, 281474582001959, 281473218445312, 281473226895584, 281473218445312, 281473226897440, 281473226893440, 10644780780760906224, 0, 10644780780596739572, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #3 0x0000ffff99cb7e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79 No locals. Thread 3 (Thread 0xffff983780e0 (LWP 92858) "espeakup"): #0 0x0000ffff99c4b694 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0xffff99ff8db8 <my_cond_start_is_required+40>) at ./nptl/futex-internal.c:57 _x3tmp = 0 _x0tmp = 281473265405368 _x0 = 281473265405368 _x3 = 0 _x4tmp = 0 _x1tmp = 393 _x1 = 393 _x4 = 0 _x5tmp = 4294967295 _x2tmp = 0 _x2 = 0 _x5 = 4294967295 _x8 = 98 _sys_result = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> _sys_result = <optimized out> _x5tmp = <optimized out> _x4tmp = <optimized out> _x3tmp = <optimized out> _x2tmp = <optimized out> _x1tmp = <optimized out> _x0tmp = <optimized out> _x0 = <optimized out> _x1 = <optimized out> _x2 = <optimized out> _x3 = <optimized out> _x4 = <optimized out> _x5 = <optimized out> _x8 = <optimized out> #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0xffff99ff8db8 <my_cond_start_is_required+40>) at ./nptl/futex-internal.c:87 err = <optimized out> clockbit = 256 op = 393 err = <optimized out> clockbit = <optimized out> op = <optimized out> #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xffff99ff8db8 <my_cond_start_is_required+40>, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139 No locals. #3 0x0000ffff99c4e1d0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0xffff99ff8d20 <my_mutex>, cond=0xffff99ff8d90 <my_cond_start_is_required>) at ./nptl/pthread_cond_wait.c:503 spin = 0 buffer = {__routine = 0xffff99c4df14 <__condvar_cleanup_waiting>, __arg = 0xffff983777b8, __canceltype = -1711734696, __prev = 0x0} cbuffer = {wseq = 3230, cond = 0xffff99ff8d90 <my_cond_start_is_required>, mutex = 0xffff99ff8d20 <my_mutex>, private = 0} err = <optimized out> g = 0 flags = <optimized out> g1_start = <optimized out> maxspin = 0 signals = <optimized out> result = 0 wseq = 3230 seq = 1615 private = 0 maxspin = <optimized out> err = <optimized out> result = <optimized out> wseq = <optimized out> g = <optimized out> seq = <optimized out> flags = <optimized out> private = <optimized out> signals = <optimized out> done = <optimized out> g1_start = <optimized out> spin = <optimized out> buffer = <optimized out> cbuffer = <optimized out> s = <optimized out> #4 ___pthread_cond_wait (cond=cond@entry=0xffff99ff8d90 <my_cond_start_is_required>, mutex=mutex@entry=0xffff99ff8d20 <my_mutex>) at ./nptl/pthread_cond_wait.c:618 No locals. #5 0x0000ffff99f8ff68 in say_thread (p=<optimized out>) at src/libespeak-ng/fifo.c:308 a_start_is_required = false a_status = <optimized out> __PRETTY_FUNCTION__ = "say_thread" look_for_inactivity = true #6 0x0000ffff99c4ee18 in start_thread (arg=0xffffe87937d7) at ./nptl/pthread_create.c:442 ret = <optimized out> pd = 0xffffe87937d7 out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473235517664, 281474582001848, 281474582001622, 0, 8448416, 281474582001623, 281473227067392, 281473235517664, 281473227067392, 281473235519520, 281473235515520, 10644780780760906224, 0, 10644780780755824116, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #7 0x0000ffff99cb7e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79 No locals. Thread 2 (Thread 0xffff98f5f0e0 (LWP 92857) "espeakup"): #0 0x0000ffff99c0b558 in __GI___sigtimedwait (set=set@entry=0xffff98f5e760, info=info@entry=0xffff98f5e688, timeout=timeout@entry=0x0) at ../sysdeps/unix/sysv/linux/sigtimedwait.c:31 _x2tmp = 0 _x0tmp = 281473247995744 _x0 = -4 _x2 = 0 _x8 = 137 _x3tmp = 8 _x1tmp = 281473247995528 _x1 = 281473247995528 _x3 = 8 _sys_result = <optimized out> sc_ret = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> result = <optimized out> #1 0x0000ffff99c0ab40 in __GI___sigwait (set=set@entry=0xffff98f5e760, sig=sig@entry=0xffff98f5e75c) at ../sysdeps/unix/sysv/linux/sigwait.c:28 si = {si_signo = 0, si_errno = 0, si_code = 0, __pad0 = 0, _sifields = {_pad = {0 <repeats 18 times>, 12582912, 0, 12582912, 0, 0, 0, 0, 0, -1074200296, 43690}, _kill = {si_pid = 0, si_uid = 0}, _timer = {si_tid = 0, si_overrun = 0, si_sigval = {sival_int = 0, sival_ptr = 0x0}}, _rt = {si_pid = 0, si_uid = 0, si_sigval = {sival_int = 0, sival_ptr = 0x0}}, _sigchld = {si_pid = 0, si_uid = 0, si_status = 0, si_utime = 0, si_stime = 0}, _sigfault = {si_addr = 0x0, si_addr_lsb = 0, _bounds = {_addr_bnd = {_lower = 0x0, _upper = 0x0}, _pkey = 0}}, _sigpoll = {si_band = 0, si_fd = 0}, _sigsys = {_call_addr = 0x0, _syscall = 0, _arch = 0}}} ret = <optimized out> #2 0x0000aaaabff73f2c in signal_thread (arg=<optimized out>) at ../src/signal.c:55 temp = {__sigaction_handler = {sa_handler = 0xaaaabff73e40 <dummy_handler>, sa_sigaction = 0xaaaabff73e40 <dummy_handler>}, sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 0, sa_restorer = 0x0} sigset = {__val = {18446744067267100671, 0 <repeats 15 times>}} sig = 0 #3 0x0000ffff99c4ee18 in start_thread (arg=0xffffe8793927) at ./nptl/pthread_create.c:442 ret = <optimized out> pd = 0xffffe8793927 out = <optimized out> unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473247998176, 281474582001968, 281474582001958, 0, 8448416, 281474582001959, 281473239547904, 281473247998176, 281473239547904, 281473248000032, 281473247996032, 10644780780760906224, 0, 10644780780743146996, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #4 0x0000ffff99cb7e9c in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone.S:79 No locals. Thread 1 (Thread 0xffff99f3c020 (LWP 92856) "espeakup"): #0 0x0000ffff99c4b694 in __futex_abstimed_wait_common64 (private=128, cancel=true, abstime=0x0, op=265, expected=92857, futex_word=0xffff98f5f1b0) at ./nptl/futex-internal.c:57 _x3tmp = 0 _x0tmp = 281473247998384 _x0 = 281473247998384 _x3 = 0 _x4tmp = 0 _x1tmp = 265 _x1 = 265 _x4 = 0 _x5tmp = 4294967295 _x2tmp = 92857 _x2 = 92857 _x5 = 4294967295 _x8 = 98 _sys_result = <optimized out> sc_cancel_oldtype = 0 sc_ret = <optimized out> _sys_result = <optimized out> _x5tmp = <optimized out> _x4tmp = <optimized out> _x3tmp = <optimized out> _x2tmp = <optimized out> _x1tmp = <optimized out> _x0tmp = <optimized out> _x0 = <optimized out> _x1 = <optimized out> _x2 = <optimized out> _x3 = <optimized out> _x4 = <optimized out> _x5 = <optimized out> _x8 = <optimized out> #1 __futex_abstimed_wait_common (cancel=true, private=128, abstime=0x0, clockid=0, expected=92857, futex_word=0xffff98f5f1b0) at ./nptl/futex-internal.c:87 err = <optimized out> clockbit = 256 op = 265 err = <optimized out> clockbit = <optimized out> op = <optimized out> #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0xffff98f5f1b0, expected=92857, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=128) at ./nptl/futex-internal.c:139 No locals. #3 0x0000ffff99c50718 in __pthread_clockjoin_ex (threadid=281473247998176, thread_return=thread_return@entry=0x0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, block=block@entry=true) at ./nptl/pthread_join_common.c:102 ret = <optimized out> _buffer = {__routine = 0xffff99c50590 <cleanup>, __arg = 0xffff98f5f500, __canceltype = 0, __prev = 0x0} tid = <optimized out> pd = 0xffff98f5f0e0 self = <optimized out> result = 0 pd_result = <optimized out> #4 0x0000ffff99c50590 in ___pthread_join (threadid=<optimized out>, thread_return=thread_return@entry=0x0) at ./nptl/pthread_join.c:24 No locals. #5 0x0000aaaabff72800 in main (argc=<optimized out>, argv=0xffffe8793c78) at ../src/espeakup.c:229 fd = 6 devnull = <optimized out> ret = 0 '\000' sigset = {__val = {16386, 281473265436384, 281473265699696, 281473265702704, 281473265696808, 281473261573552, 281474582002832, 281474582002704, 281473265501332, 281474582002808, 2, 187650341927912, 187650341807744, 281474582002432, 281473261205312, 281474582002808}} err = <optimized out> signal_thread_id = 281473247998176 espeak_thread_id = 281473218441440 softsynth_thread_id = 281473226895584 s = {frequency = 5, pitch = 4, range = 5, punct = 2, rate = 9, voice = "en", '\000' <repeats 17 times>, volume = 5, buf = 0xffff88001570 "\261\220\371s\360\377", len = 51} [?2004h(gdb) [?2004l [?2004h(gdb) quit [?2004l [?2004hA debugging session is active. Inferior 1 [process 92856] will be detached. Quit anyway? (y or n) quit [?2004l EOF [assumed Y] Detaching from program: /usr/bin/espeakup, process 92856 [Inferior 1 (process 92856) detached]