Bug 155820
Summary: | gtk2.i386 %post scripts segfault on x86_64 | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Michal Jaegermann <michal> |
Component: | kernel | Assignee: | Dave Jones <davej> |
Status: | CLOSED RAWHIDE | QA Contact: | Brian Brock <bbrock> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | pfrields, wtogami |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2005-05-16 08:51:41 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 136450 |
Description
Michal Jaegermann
2005-04-24 02:55:57 UTC
Works fine on a x86_64 rawhide box here. I will need a stacktrace to make any progress on this. Please reopen from NEEDINFO if you attach a stacktrace Hm, this seems to be a problem. As a quoted error message says this is /usr/bin/gdk-pixbuf-query-loaders-32 which segfaults. Running this under strace comes remarkably short: execve("/usr/bin/gdk-pixbuf-query-loaders-32", ["/usr/bin/gdk-pixbuf-query-loader"...], [/* 35 vars */]) = 0 brk(0) = 0x804b000 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ [ Process PID=3222 runs in 32 bit mode. ] An attempt to look at this with gdb makes gdb to print after 'run' Loaded system supplied DSO at 0xffffe000 and after that nothing. Looking at a process table one can find there something like that: root 3097 Ss 10:58 0:00 \_ bash root 3138 S 11:00 0:00 | \_ gdb /usr/bin/gdk-pixbuf-query-loaders-32 root 3141 R+ 11:00 1:54 | \_ /usr/bin/gdk-pixbuf-query-loaders-32 with 'strace -p 3138' printing 'wait4(-1,' and this call, not surprisingly, never finishing. A process 3141 is unkillable. I eventually ended up with sending to it all possible signals in a loop with no traces of a reaction. The only way to make it to go is to reboot and this gives a big trouble when unmounting file systems as most of everything is "busy". After SysRq-T one can find something of that sort: ..... <ffffffff8010f0de>{system_call+126} gdk-pixbuf-qu R running task 0 3141 3138 (NOTLB) gdb S ffffffff805027a0 0 3138 3097 3141 (NOTLB) ffff81000ca3fec8 0000000000000082 00007fffffcbb000 00007fffffcbaf7c 000000740ca3fea8 ffff810013dec0f0 ffff810013dec850 ffff810000000000 0000000000000c50 0000000000000012 Call Trace:<ffffffff8013fe19>{do_wait+3577} <ffffffff801355f0>{default_wake_function+0} <ffffffff8010f15f>{sysret_signal+20} <ffffffff8010f0de>{system_call+126} with no call trace for the proces in question. OTOH if one will do in gdb that: (gdb) b main Function "main" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (main) pending. and aftet that 'run' then sometimes a bunch of messages from various pixbuf loaders is printed and "program exited normally" but other times the picture is the same as above. When trying the same with /usr/bin/gtk-query-immodules-2.0-32, which also bombs, results look remarkably the same as above. If this does not pinpoint a source of the trouble then any other ideas where to look? Hmm. Are the right loaders present in /usr/lib/gtk-2.0/2.4.0/loaders ? What does ldd /usr/bin/gdk-pixbuf-query-loaders report ? > What does ldd /usr/bin/gdk-pixbuf-query-loaders report ?
Not much, I am afraid.
# ldd /usr/bin/gdk-pixbuf-query-loaders-32
/usr/bin/ldd: line 116: 3199 Segmentation fault LD_TRACE_LOADED_OBJECTS=1
LD_WARN= LD_BIND_NOW= LD_LIBRARY_VERSION=$verify_out LD_VERBOSE= "$@"
The problem is that "$@" expands to /usr/bin/gdk-pixbuf-query-loaders-32 and
we are back where we were before. This is eval line which ends up with
a status 139 (128+11, as expected).
If you wonder if /usr/lib/gtk-2.0/2.4.0/loaders/ directory is properly
populated then 'rpm -qVf /usr/lib/gtk-2.0/2.4.0/loaders/' does not complain
about it and 'ls -l' reports:
12396 Apr 22 13:55 libpixbufloader-ani.so
12684 Apr 22 13:55 libpixbufloader-bmp.so
22668 Apr 22 13:55 libpixbufloader-gif.so
12600 Apr 22 13:55 libpixbufloader-ico.so
14348 Apr 22 13:55 libpixbufloader-jpeg.so
9308 Apr 22 13:55 libpixbufloader-pcx.so
15024 Apr 22 13:55 libpixbufloader-png.so
12008 Apr 22 13:55 libpixbufloader-pnm.so
6880 Apr 22 13:55 libpixbufloader-ras.so
12072 Apr 22 13:55 libpixbufloader-tga.so
10296 Apr 22 13:55 libpixbufloader-tiff.so
6432 Apr 22 13:55 libpixbufloader-wbmp.so
10040 Apr 22 13:55 libpixbufloader-xbm.so
32508 Apr 22 13:55 libpixbufloader-xpm.so
64-bit loaders are, obviously, in /usr/lib64/gtk-2.0/2.4.0/loaders/.
Keep in mind that on few occasions I managed to run gdk-pixbuf-query-loaders-32
to normal completion; in gdb when I set a break in main(). The trouble
is that I cannot do that consistently and never when running outside gdb.
I realized something. Yesterday people on fedora-test-list were complaining about random crashes in various programs after recent updates. I rebooted 2.6.11-1.1251_FC4 kernel and both /usr/bin/gdk-pixbuf-query-loaders-32 and /usr/bin/gtk-query-immodules-2.0-32 run without any problems. But if booted 2.6.11-1.1258_FC4 or 2.6.11-1.1261_FC4 I am seeing what is described above. It looks like that I am barking on a wrong tree. Ok, moving to kernel then kernel-2.6.11-1.1267_FC4 does not change the picture. The above might be describing 2 or more different issues. x86_64 Random system deadlocks, spontatenous reboots or panics are Bug 155827 Bug 155790 are many 32-bit crashes on x86_64 Bug 155897 is kernel causing rpm trouble on x86_64 My guess would be that this is another manifestation of bug 155790. However running under gdb may help only if a breakpoint was set before doing "run" and even that is a gamble. Without setting a breakpoint gdb does not help. I'm willing to bet this has been solved by the solution to Bug 155790. REOPEN if this happens with the latest FC4 kernels. |