[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