I don't know where to assign blame so I'm starting with Firefox 58.0,1 cause that's when I see the issue. I only noticed this for the first time a couple of days ago when running "top" and seeing one zombie process. $ ps ajx|grep -w Z rob 87197 0.0 0.0 0 0 0 Z+ 16:07 0:00.00 <defunct> rob 87202 0.0 0.0 14928 2700 4 S+ 16:08 0:00.00 grep 87197 $ ps aux|grep 87196 rob 87196 0.0 0.0 44048 7220 0 I+ 16:07 0:00.00 /usr/local/lib/speech- rob 87204 0.0 0.0 14928 2700 4 S+ 16:08 0:00.00 grep 87196 $ ps aux|grep 87196 rob 87196 0.0 0.0 44048 7220 0 I+ 16:07 0:00.00 /usr/local/lib/speech-dispatcher-modules/sd_cicero /usr/ rob 87206 0.0 0.0 14928 2700 4 S+ 16:09 0:00.00 grep 87196 $ ps aux|grep 87196 rob 87196 0.0 0.0 44048 7220 0 I+ 16:07 0:00.00 /usr/local/lib/speech-dispatcher-modules/sd_cicero /usr/local/etc/speech-dispatcher/modules/cicero.conf rob 87235 0.0 0.0 14928 2700 4 S+ 16:13 0:00.00 grep 87196 What I don't understand is that 'pkg info -r speech-dispatcher' shows www/chromium as dependent on this port and not Firefox. Closing Firefox or killing it makes the zombie go away as I believe it should being the parent process.
Firefox 44+ implements WebSpeech API on FreeDesktop platforms via speech-dispatcher. Firefox 49+ itself uses WebSpeech to Narrate a page. Both didn't have any changes in Firefox 58. Steps To Reproduce: 1. pkg install firefox mesa-dri speech-dispatcher 2. firefox -new-instance -profile $(mktemp -d) https://en.wikipedia.org/ 3. Click on Enter Reader View in URL bar 4. Click Narrate button at left side panel 5. Click Play Firefox spawns sd_* processes as soon as step #3 which highlights there maybe an issue with initialization. Let's try to minify: $ cat a.c #include <libspeechd.h> #include <unistd.h> int main(int argc, char *argv[]) { SPDConnection* mSpeechdClient = spd_open(argv[0], NULL, NULL, SPD_MODE_THREADED); spd_say(mSpeechdClient, SPD_MESSAGE, "Hello from Speech Dispatcher!"); sleep(600); return 0; } $ pkg install speech-dispatcher pkgconf $ cc a.c `pkg-config --cflags --libs speech-dispatcher` $ ./a.out & $ ps xd PID TT STAT TIME COMMAND 36621 - SsJ 0:00.00 /usr/local/bin/speech-dispatcher --spawn --communication-method unix_socket - 36615 6 SJ 0:00.00 /usr/local/lib/speech-dispatcher-modules/sd_generic /usr/local/etc/speech-dis 36616 6 SJ 0:00.00 /usr/local/lib/speech-dispatcher-modules/sd_dummy /usr/local/etc/speech-dispa 36618 6 SJ 0:00.01 /usr/local/lib/speech-dispatcher-modules/sd_espeak /usr/local/etc/speech-disp 36619 6 SJ 0:00.00 /usr/local/lib/speech-dispatcher-modules/sd_cicero /usr/local/etc/speech-disp 36620 6 ZJ 0:00.00 - <defunct>
Maybe speech-dispatcher maintainer can check if Gecko uses API correctly. https://searchfox.org/mozilla-central/rev/48cbb200aa02/dom/media/webspeech/synth/speechd/SpeechDispatcherService.cpp
What's the situation with firefox-112.0.1_1,2 and speech-dispatcher-0.11.2_1 on 13.2-RELEASE? accessibility/speech-dispatcher is maintained by multimedia@