FS#36556 - [ glibc 2.18-1] - Segmentation fault (core dump) if I launch application

Attached to Project: Arch Linux
Opened by Simon Solinas (ksolsim) - Thursday, 15 August 2013, 22:59 GMT
Last edited by Allan McRae (Allan) - Friday, 16 August 2013, 21:47 GMT
Task Type Bug Report
Category Packages: Core
Status Closed
Assigned To Allan McRae (Allan)
Architecture i686
Severity Critical
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

After updating glibc to 2.18-1 if I try to login into plasma desktop (4.11 from testing) from kdm system returns to kdm, instead if I login into e17 or openbox and try to launch some applications such as konsole this doesn t work, dolphin, firefox and chromium return "segmentation fault (core dump)". Everything goes back to work if I downgrade glibc to 2.17-6. This happens on 32-bit system, while on a 64-bit system everything is ok.

Additional info:
glibc to 2.18-1

Steps to reproduce:

launching application, such dolphin or firefox or chromium, from xterm or konsole
This task depends upon

Closed by  Allan McRae (Allan)
Friday, 16 August 2013, 21:47 GMT
Reason for closing:  Fixed
Additional comments about closing:  glibc-2.18-2, lib32-glibc-2.18-2
Comment by Simon Solinas (ksolsim) - Thursday, 15 August 2013, 23:00 GMT
more information:

- procinfo
   procinfo (3.4 KiB)
Comment by Simon Solinas (ksolsim) - Thursday, 15 August 2013, 23:03 GMT
- dolphin (4.11) backtrace:

[root@linux simone]# gdb dolphin
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/dolphin...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/dolphin
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xb7e8dcc5 in __strstr_sse42 () from /usr/lib/libc.so.6
(gdb) bt
#0 0xb7e8dcc5 in __strstr_sse42 () from /usr/lib/libc.so.6
#1 0xb1cd2bb1 in ?? () from /usr/lib/libGL.so.1
#2 0xb1ca9f73 in ?? () from /usr/lib/libGL.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) quit

Comment by Simon Solinas (ksolsim) - Thursday, 15 August 2013, 23:05 GMT
- backtrace firefox

[root@linux simone]# gdb firefox
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/firefox/firefox...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/lib/firefox/firefox
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xb7dfbcc5 in __strstr_sse42 () from /usr/lib/libc.so.6
(gdb) bt
#0 0xb7dfbcc5 in __strstr_sse42 () from /usr/lib/libc.so.6
#1 0xb3b93bb1 in ?? () from /usr/lib/libGL.so.1
#2 0xb3b6af73 in ?? () from /usr/lib/libGL.so.1
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) quit
Comment by Ian Thompson (Dalrik) - Friday, 16 August 2013, 01:52 GMT
Can confirm issue exists on multilib as well, same __strstr_sse42 crash.

-- zsnes backtrace (unable to poll errors are expected and harmless):

✘ ian@beta  /var/cache/pacman/pkg  gdb zsnes
GNU gdb (GDB) 7.6
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/zsnes...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/zsnes
warning: Could not load shared library symbols for linux-gate.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
ZSNES v1.51, (c) 1997-2007, ZSNES Team
Be sure to check http://www.zsnes.com/ for the latest version.

ZSNES is written by the ZSNES Team (See AUTHORS.TXT)
ZSNES comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions;
please read 'LICENSE.TXT' thoroughly before doing so.

Use ZSNES -? for command line definitions.

Starting Mouse detection.
Unable to poll /dev/input/event15. Make sure you have read permissions to it.
Unable to poll /dev/input/event14. Make sure you have read permissions to it.
Unable to poll /dev/input/event13. Make sure you have read permissions to it.
Unable to poll /dev/input/event12. Make sure you have read permissions to it.
Unable to poll /dev/input/event11. Make sure you have read permissions to it.
Unable to poll /dev/input/event10. Make sure you have read permissions to it.
Unable to poll /dev/input/event9. Make sure you have read permissions to it.
Unable to poll /dev/input/event8. Make sure you have read permissions to it.
Unable to poll /dev/input/event7. Make sure you have read permissions to it.
Unable to poll /dev/input/event6. Make sure you have read permissions to it.
Unable to poll /dev/input/event5. Make sure you have read permissions to it.
Unable to poll /dev/input/event4. Make sure you have read permissions to it.
Unable to poll /dev/input/event3. Make sure you have read permissions to it.
Unable to poll /dev/input/event2. Make sure you have read permissions to it.
Unable to poll /dev/input/event1. Make sure you have read permissions to it.
Unable to poll /dev/input/event0. Make sure you have read permissions to it.
ManyMouse: 0 mice detected.
[New Thread 0xf6e13b40 (LWP 29496)]

Program received signal SIGSEGV, Segmentation fault.
0xf7c32155 in __strstr_sse42 () from /usr/lib32/libc.so.6
Comment by Jan Alexander Steffens (heftig) - Friday, 16 August 2013, 03:22 GMT
I can confirm this. Can reproduce the crash in __strstr_sse42 using glibc-2.18-1-i686 and lib32-glibc-2.18-1-x86_64.
Comment by Olivier Langlois (lano1106) - Friday, 16 August 2013, 03:35 GMT
just curious and maybe stupid question but people experiencing the crash.

Do you see sse4_2 in the output of

cat /proc/cpuinfo

EDIT: The answer is yes. Just saw the attachement. Sorry for the noise.
Comment by Ian Thompson (Dalrik) - Friday, 16 August 2013, 05:24 GMT
It looks like commit f1d70dad5381352b3cad04b5ee0dd0efe2627683 is the problem.

http://sourceware.org/git/?p=glibc.git;a=commit;h=f1d70dad5381352b3cad04b5ee0dd0efe2627683
Comment by Jan Alexander Steffens (heftig) - Friday, 16 August 2013, 05:27 GMT
Hmm, does it work if you remove the #if/#endif added to strstr.c by that commit?
Comment by Allan McRae (Allan) - Friday, 16 August 2013, 06:18 GMT
For the people having this issue, what package provides /usr/lib/libGL.so.1?
Comment by Allan McRae (Allan) - Friday, 16 August 2013, 06:18 GMT
@Dalrik: was that from bisecting the issue? Have you confirmed reverting that commit fixes it?
Comment by Ian Thompson (Dalrik) - Friday, 16 August 2013, 06:29 GMT
Yes that was a bisect. Readding inline to __m128i_strloadu fixes it. libGL is owned by mesa-libgl 9.1.6-1 (lib32-mesa-libgl for the lib32 version)

EDIT: Also, a straight revert fails due to merge conflicts in locale/elem-hash.h and posix/regex_internal.h, and the build fails
Comment by Jan Alexander Steffens (heftig) - Friday, 16 August 2013, 06:54 GMT
Building glibc with -O3 instead of -O2 seems to help, as well.
Comment by Allan McRae (Allan) - Friday, 16 August 2013, 12:15 GMT
glibc-2.18-2 in [testing]. Can people confirm the "fix"? (lib32 builds should appear soon)
Comment by Bambang Purnomosidi D. P. (bpdp) - Friday, 16 August 2013, 12:39 GMT
glibc-2.18-2 in [testing] fix the segfault problem in running oracle jdk (more or less the same as this bug).
Comment by Simon Solinas (ksolsim) - Friday, 16 August 2013, 12:57 GMT
fixed, thanks.
Comment by Ian Thompson (Dalrik) - Friday, 16 August 2013, 19:47 GMT
lib32-glibc 2.18-2 in [multilib-testing] works as well

Loading...