[BRLTTY] Fwd: Orca crash with grade 2 and latest versions of brltty and liblouis
Peter Torpey
ptorpey at rochester.rr.com
Thu Jul 2 17:31:10 EDT 2009
Great job Will, and thanks.
Based on your feedback and our previous tests, here is what I did to resolve
the problem:
1. Located all liblouis-related files on my system by running:
locate louis
2. Performed sudo -rm -rf on each of the returns from 1 above.
3. Re-installed liblouis from scratch
4. Rebuilt Orca
5. Killed and restarted Orca
6. Turned on grade 2 contraction and ... yes ... it worked!
Hopefully the exception catcher in brltty can be made to exit more
gracefully when it gets something it doesn't understand. Not good when the
I/O system for the user is taken down completely by what would otherwise be
just a little nuisance problem.
Thanks again.
--Pete
-----Original Message-----
From: William.Walker at Sun.COM [mailto:William.Walker at Sun.COM]
Sent: Thursday, July 02, 2009 3:30 PM
To: ptorpey at rochester.rr.com; Informal discussion between users and
developers of BRLTTY.
Subject: Re: [BRLTTY] Fwd: Orca crash with grade 2 and latest versions of
brltty and liblouis
I chased this down with Pete. Here's what I believe is happening:
1) Orca uses liblouis for contracted braille: it makes liblouis calls
and then calls the BrlAPI write(writeStruct) method using the translated
string.
2) I believe Pete built/installed liblouis at one time or another using
the --disable-ucs4 option. I verified this by doing so myself and
reproducing the crash Pete had. I then rebuilt/reinstalled liblouis
using the --enable-ucs4 option. With this as the sole change on my
machine, Orca no longer crashed and produced contracted braille fine. I
suspect fixing this on Pete's machine will most likely be a matter of
doing a search and destroy of all the bad builds/installs of liblouis
and replacing them with a good one.
I tried wrapping Orca's call to 'write' in a try/except clause, but it
appears as though the Python bindings for BrlAPI do not bubble up
exceptions. Instead, BrlAPI has a default exception handler that calls
abort() and takes down the entire Python machine with it.
BrlAPI provides a brlapi_setExceptionHandler method, but I'm not sure
how to get to it from Python. Can you BrlTTY folks offer some guidance?
Will
Willie Walker wrote:
>> Ok, the interesting part is
>>
>> Received Write request on fd 10
>> charset UTF-8
>> writing exception 7 to 10
>> res != (size_t) -1 not met: invalid charset conversion
>> exception 7 for packet type 119 on fd 10
>> Closing connection on fd 10
>>
>> which means some non-UTF-8 text somehow got in.
>
> Hmmm....then this means it may possibly be Orca sending bad text. I'm
> puzzled why it works so well on OpenSolaris, though. :-(
>
> Will
>
>
Checked by AVG - www.avg.com
Version: 8.5.375 / Virus Database: 270.13.2/2214 - Release Date: 07/02/09
05:54:00
More information about the BRLTTY
mailing list