Bug#969488: Assertion failed when speaking some Unicode characters

Samuel Thibault sthibault at debian.org
Thu Sep 3 18:45:45 BST 2020


Samuel Thibault, le jeu. 03 sept. 2020 19:41:57 +0200, a ecrit:
> Dennis Filder, le jeu. 03 sept. 2020 19:28:11 +0200, a ecrit:
> > The patch fixes the error and also adds code to retry the read after a
> > short delay.
> 
> ? You don't want to delay. Either the file is opened in blocking mode,
> and you never get EAGAIN, or you open in non-blocking mode, and the
> whole loop is supposed to handle this with select, which is the case
> here. So just let it go back to select. If that poses problems, it means
> that there is a bug that should be fixed inside speakup, and your delay
> only hides that bug, while eating batteries.

Looking more into it: speechd-up uses softsynth rather than softsynthu.
speakup thus drops all the non-latin1 characters, but it does so by
skipping them from the read(), and thus it returns EAGAIN since in the
end it actually doesn't have anything to return. The behavior then
really is to go back to select(), select() won't return immediately
since the read() call will have consumed the non-latin1 characters, even
if not returning them.

BTW, please submit your patches to upstream
http://github.com/williamh/speechd-up as well, we do not want to carry
them in Debian only longtermwise.

And thanks for the investigation :)
Samuel



More information about the Pkg-a11y-devel mailing list