sthibault: do you think this could be related to https://github.com/linux-speakup/espeakup/pull/48 ?
(the reason for my guess: it is the only recent change within the espeak_thread function - and a buffer-full / wait condition feels like something that could occur semi-repeatably and could have edge cases) Although the change from that pull request is not included in the vanilla tarball of espeakup version 0.90 on GitHub, it is patched[1] into Debian. [1] - https://sources.debian.org/src/espeakup/1%3A0.90-13/debian/patches/flow_control/ On Wed, 20 Dec 2023 at 18:35, Frank Carmickle <fr...@carmickle.com> wrote: > > > > On Dec 20, 2023, at 13:21, Geoff Shang <ge...@quitelikely.com> wrote: > > > > On Tue, 28 Nov 2023, James Addison wrote: > > > >> To do that, the first step is to enable a sources.list entry for debug > >> symbol packages, then to install the gdb and espeakup-dbgsym packages, > >> and then after the espeakup process stops speaking, to attach the gdb > >> debugger to locate where it got stuck by running: gdb > >> /usr/bin/espeakup <pid-of-broken-process> > >> > >> If that works and you are provided with a (gdb) shell, you should be > >> able to type the single word 'bt' and press enter to get a backtrace, > >> and then copy and paste the results here. > > > > It took me a couple of goes, and I lost speech entirely both times (not > > sure why), but I got a trace. > > > > I'm not sure how helpful it is though. > > > > root@debian:~# gdb /usr/bin/espeakup 861 > > 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 "x86_64-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/76/62ad26e5f970e59309a544f3864db114aa389e.debug... > > Attaching to program: /usr/bin/espeakup, process 861 > > [New LWP 862] > > [New LWP 863] > > [New LWP 864] > > [New LWP 865] > > [New LWP 866] > > [Thread debugging using libthread_db enabled] > > Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". > > 0x00007f9de46bfda6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 > > (gdb) bt > > #0 0x00007f9de46bfda6 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 > > #1 0x00007f9de46c4b33 in ?? () from /lib/x86_64-linux-gnu/libc.so.6 > > #2 0x00005605c505e734 in main (argc=<optimized out>, argv=<optimized out>) > > at ../src/espeakup.c:229 > > Thanks for working on this. > > Just to document, line 229 of espeakup.c is > > pthread_join(signal_thread_id, NULL); > > --FC >