[GNC-dev] gnucash maint: Multiple changes pushed

John Ralls jralls at ceridwen.us
Wed Jan 9 20:08:29 EST 2019



> On Jan 9, 2019, at 11:52 AM, Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
> 
> Op woensdag 9 januari 2019 18:06:49 CET schreef Geert Janssens:
>> Op woensdag 9 januari 2019 15:57:07 CET schreef John Ralls:
>>>> On Jan 9, 2019, at 4:24 AM, Geert Janssens <geert.gnucash at kobaltwit.be>
>>>> wrote:>
>>>> 
>>>> Op dinsdag 1 januari 2019 22:14:16 CET schreef John Ralls:
>>>>> Updated	 via  https://github.com/Gnucash/gnucash/commit/3a105f07
>> 
>> (commit)
>> 
>>>>> 	 via  https://github.com/Gnucash/gnucash/commit/95bee405 (commit)
>>>>> 	 via  https://github.com/Gnucash/gnucash/commit/cc3bb4ef (commit)
>>>>> 	
>>>>> 	from  https://github.com/Gnucash/gnucash/commit/0f53b6c8 (commit)
>>>>> 
>>>>> commit 3a105f0728984df7f063110acc8390c93722d581
>>>>> Author: John Ralls <jralls at ceridwen.us>
>>>>> Date:   Tue Jan 1 13:12:39 2019 -0800
>>>>> 
>>>>>   Catch boost::locale character-conversion exceptions.
>>>>> 
>>>>>   Partial cause of the crash reported in Bug 797002.
>>>> 
>>>> I suppose you meant 796996 ?
>>>> 
>>>> Also it looks like you're really only catching the errors. The source of
>>>> the conversion issue itself is not really determined yet ?
>>> 
>>> Yes, wrong bug.
>>> 
>>> Yes, in this one I’m only catching the exceptions because uncaught
>>> exceptions cause crashes. The root cause was libc’s not-quite-right
>>> creation of e.g. “Spanish_Spain.1252” locale strings, the .1252 part
>>> choking gen(“”) (and even Spanish_Spain chokes std::locale(“”). That’s
>>> addressed with the more thorough error handling and use of gen(“”) in
>>> b4fedff90e.
>>> 
>>> Regards,
>>> John Ralls
>> 
>> Oh right. I saw that commit later on, but didn't make the connection.
>> Thanks.
> 
> Returning to this: it occurred to me bug 796996 is about a crash on MacOS, 
> though the example you give looks like a Windows locale name.
> 
> Does libc MacOS also create improper locale names and does b4fedff90e fix this 
> as well ?

Yes, and so do some Linux distros. What chokes gen(“”) is the appended encoding.  That’s why b4fedff90e strips everything after ‘.’ in the locale string and tries again.

The wider Windows case came up on IRC: https://wiki.gnucash.org/logs/2019/01/04.html#T15:58:41 <https://wiki.gnucash.org/logs/2019/01/04.html#T15:58:41>. That fail was from std::locale and is what led me to use gen(“”) for all C++ locale retrievals.

Regards,
John Ralls



More information about the gnucash-devel mailing list