Bug 933241

Summary: snapper list: terminate called after throwing an instance of 'std::runtime_error'
Product: [openSUSE] openSUSE Tumbleweed Reporter: Martin Pluskal <mpluskal>
Component: BasesystemAssignee: Arvin Schnell <aschnell>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Minor    
Priority: P4 - Low CC: aschnell, locilka
Version: Current   
Target Milestone: ---   
Hardware: Other   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: backtrace
core

Description Martin Pluskal 2015-06-02 10:46:04 UTC
Created attachment 636338 [details]
backtrace

# snapper list
terminate called after throwing an instance of 'std::runtime_error'
  what():  locale::facet::_S_create_c_locale name not valid
Aborted (core dumped)

(gdb) bt
#0  0x00007fcf47e7e3c7 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
#1  0x00007fcf47e7f79a in __GI_abort () at abort.c:78
#2  0x00007fcf48498b1d in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#3  0x00007fcf48496b86 in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#4  0x00007fcf48496bd1 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#5  0x00007fcf48496de8 in __cxxabiv1::__cxa_throw (obj=0x250fbc0, tinfo=0x63ae50 <typeinfo for std::runtime_error>, dest=0x7fcf484ab8a0 <std::runtime_error::~runtime_error()>) at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:87
#6  0x00007fcf484be4df in std::__throw_runtime_error (__s=__s@entry=0x7fcf4853a6c8 "locale::facet::_S_create_c_locale name not valid") at ../../../../../libstdc++-v3/src/c++11/functexcept.cc:110
#7  0x00007fcf484b8d84 in std::locale::facet::_S_create_c_locale (__cloc=@0x7ffe58bc4240: 0x0, __s=__s@entry=0x7ffe58bc42e0 "C.UTF-8", __old=__old@entry=0x0) at c++locale.cc:137
#8  0x00007fcf484aa039 in std::locale::_Impl::_Impl (this=0x250f990, __s=0x7ffe58bc42e0 "C.UTF-8", __refs=<optimized out>) at ../../../../../libstdc++-v3/src/c++98/localename.cc:186
#9  0x00007fcf484ab2ea in std::locale::locale (this=0x7ffe58bc4650, __s=<optimized out>) at ../../../../../libstdc++-v3/src/c++98/localename.cc:136
#10 0x000000000040d5bf in main (argc=2, argv=0x7ffe58bc4bc8) at snapper.cc:1590


Seems likely triggered by incorrect locale settings:
# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=C.UTF-8
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
Comment 1 Martin Pluskal 2015-06-02 10:46:24 UTC
Created attachment 636339 [details]
core
Comment 2 Arvin Schnell 2015-06-02 13:01:05 UTC
Yes, this is due to the invalid locale of your system. I have improved
the error message but the program will not work in this case. A valid
environment is required.
Comment 3 Martin Pluskal 2015-06-02 13:24:37 UTC
I strongly disagree with such resolution, SIGABRT as result of incorrect locale is hardly correct behavior - please find better resolution.
Comment 4 Arvin Schnell 2015-06-02 13:30:37 UTC
As I have written I have improved the error message but the program will
still exit with a failure (in such an invalid environment).

Your test environment in invalid, pure and simple.
Comment 5 Martin Pluskal 2015-06-02 13:32:58 UTC
If you have improved error message, then this issue is fixed, isn't it?
Comment 6 Arvin Schnell 2015-06-02 13:37:15 UTC
Call it fixed if you want. But snapper will still exit/terminate in that
case (which is valid behaviour).