[ https://forge.continuent.org/jira/browse/CAROB-74?page=all ]
Marc Herbert closed CAROB-74:
-----------------------------
Resolution: Fixed
Fix Version: (was: Carob 1.0)
Carob 0.7.2
Carob now neither segfaults (since long) nor aborts at static init time.
Now the error happens only at connection time, with detailed logs.
See CAROB- "setting of the UTF8 locale at run-time" for a follow-up.
> programs linked against libcarob.so segfault if the hardcoded local is not
> installed
> ------------------------------------------------------------------------------------
>
> Key: CAROB-74
> URL: https://forge.continuent.org/jira/browse/CAROB-74
> Project: Carob
> Type: Bug
> Components: C++ API
> Versions: Carob 0.5
> Environment: Debian stable.
> Reporter: Simon Csaba Endre
> Assignee: Gilles Rayrat
> Fix For: Carob 0.7.2
>
> Original Estimate: 1 day
> Remaining: 1 day
>
> If the en_US.utf8 locale is not installed the program linked agains
> libcarob.so will segfault. Here is the debugger output:
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 16384 (LWP 2462)]
> 0x403dfb07 in std::__codecvt_abstract_base<wchar_t, char, __mbstate_t>::in ()
> from /usr/lib/libcarob.so
> (gdb) bt
> #0 0x403dfb07 in std::__codecvt_abstract_base<wchar_t, char,
> __mbstate_t>::in () from /usr/lib/libcarob.so
> #1 0x403df6aa in CarobNS::MBSCodec::decode () from /usr/lib/libcarob.so
> #2 0x403ad6b2 in CarobNS::StaticCodecs::fromString () from
> /usr/lib/libcarob.so
> #3 0x403ad354 in CarobNS::fromString () from /usr/lib/libcarob.so
> #4 0x403deee0 in (anonymous namespace)::exception_message () from
> /usr/lib/libcarob.so
> #5 0x403df180 in CarobNS::trylocale () from /usr/lib/libcarob.so
> #6 0x403a79ab in CarobNS::replaceAll () from /usr/lib/libcarob.so
> #7 0x403a7ab0 in CarobNS::replaceAll () from /usr/lib/libcarob.so
> #8 0x403dfbc5 in CarobNS::CodecException::CodecException () from
> /usr/lib/libcarob.so
> #9 0x403a7369 in _init () from /usr/lib/libcarob.so
> #10 0x4000c1ce in _dl_catch_error () from /lib/ld-linux.so.2
> #11 0x4000c2ba in _dl_init () from /lib/ld-linux.so.2
> #12 0x40000c5d in ?? () from /lib/ld-linux.so.2
> This happen before the main() function of the program is reached.
> What the user see:
> $ ./user_program
> Segmentation fault
> No error message, no explanation.
> Fix: installing the en_US.utf8 locale package. But why?
> Why the character conversion is depending on the locale settings? And why on
> the en_US.utf8 locale?
> I understood that LC_CTYPE is needed by some functions (isupper(),
> isspace()..) but as I know Carob is doing just the conversion between normal
> characters to wide characters and not doing any operation on the character
> string.
> IMHO no need for the locales. Even worst on Debian the en_US.utf8 is not
> installed by default.
> If cannot be fixed then please make it configurable at least the locale
> settings and mention it in the README file so the user can install/configure
> the needed locales.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://forge.continuent.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira
_______________________________________________
Carob mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob