| Summary: | kdesktop crashes under altlinux sisyphus | ||
|---|---|---|---|
| Product: | TDE | Reporter: | Alex Negulescu <alecs> |
| Component: | tdebase | Assignee: | Timothy Pearson <kb9vqf> |
| Status: | RESOLVED FIXED | ||
| Severity: | blocker | CC: | alecs, bugwatch, darrella |
| Priority: | P5 | ||
| Version: | 3.5.13 [Trinity] | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Compiler Version: | TDE Version String: | ||
| Application Version: | Application Name: | ||
|
Description
Alex Negulescu
2011-03-09 12:21:05 CST
BKTRACE: [Thread debugging using libthread_db enabled] [KCrash handler] #5 0x00007f2f11700775 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #6 0x00007f2f11701bf6 in abort () at abort.c:92 #7 0x00007f2f1173a68b in __libc_message (do_abort=2, fmt=0x7f2f117f88c8 "*** glibc has detected an error in %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:186 #8 0x00007f2f1173fb46 in malloc_printerr (action=3, str=0x7f2f117f5b3c "malloc(): memory corruption", ptr=<value optimized out>) at malloc.c:6267 #9 0x00007f2f117424b7 in _int_malloc (av=0x7f2f11a32e80, bytes=36) at malloc.c:4396 #10 0x00007f2f117444e0 in __libc_malloc (bytes=36) at malloc.c:3661 #11 0x00007f2f0b7c0406 in ?? () from /usr/lib64/libxcb.so.1 #12 0x00007f2f0b7be7da in ?? () from /usr/lib64/libxcb.so.1 #13 0x00007f2f0b7bfdaf in xcb_wait_for_reply () from /usr/lib64/libxcb.so.1 #14 0x00007f2f0ec36cbd in _XReply () from /usr/lib64/libX11.so.6 #15 0x00007f2f0ec205a4 in XInternAtom () from /usr/lib64/libX11.so.6 #16 0x00007f2f11aa076f in KBackgroundManager::KBackgroundManager(QWidget*, KWinModule*) () from /usr/lib64/libkdeinit_kdesktop.so #17 0x00007f2f11a9b9fe in KDesktop::initRoot() () from /usr/lib64/libkdeinit_kdesktop.so #18 0x00007f2f11a9c298 in KDesktop::KDesktop(bool, bool) () from /usr/lib64/libkdeinit_kdesktop.so #19 0x00007f2f11a8d168 in kdemain () from /usr/lib64/libkdeinit_kdesktop.so #20 0x00007f2f116ecc5d in __libc_start_main (main=0x400614, argc=1, ubp_av=0x7fffc714afc8, init=<value optimized out>, fini=<value optimized out>, rtld_fini=<value optimized out>, stack_end=0x7fffc714afb8) at libc-start.c:226 #21 0x0000000000400559 in ?? () #22 0x00007fffc714afb8 in ?? () #23 0x000000000000001c in ?? () #24 0x0000000000000001 in ?? () #25 0x00007fffc714b9a7 in ?? () #26 0x0000000000000000 in ?? () LOG: [alecs@rainsoul ~]$ /usr/lib/kde3/bin/kdesktop kbuildsycoca running... Reusing existing ksycoca *** glibc has detected an error in kdesktop: malloc(): memory corruption: 0x0000000000782270 *** ======= Backtrace: ========= /lib64/libc.so.6(+0x71b46)[0x7f2f1173fb46] /lib64/libc.so.6(+0x744b7)[0x7f2f117424b7] /lib64/libc.so.6(__libc_malloc+0x70)[0x7f2f117444e0] /usr/lib64/libxcb.so.1(+0xb406)[0x7f2f0b7c0406] /usr/lib64/libxcb.so.1(+0x97da)[0x7f2f0b7be7da] /usr/lib64/libxcb.so.1(xcb_wait_for_reply+0x12f)[0x7f2f0b7bfdaf] /usr/lib64/libX11.so.6(_XReply+0x10d)[0x7f2f0ec36cbd] /usr/lib64/libX11.so.6(XInternAtom+0xa4)[0x7f2f0ec205a4] /usr/lib64/libkdeinit_kdesktop.so(_ZN18KBackgroundManagerC1EP7QWidgetP10KWinModule+0xed)[0x7f2f11aa076f] /usr/lib64/libkdeinit_kdesktop.so(_ZN8KDesktop8initRootEv+0x446)[0x7f2f11a9b9fe] /usr/lib64/libkdeinit_kdesktop.so(_ZN8KDesktopC1Ebb+0x3de)[0x7f2f11a9c298] /usr/lib64/libkdeinit_kdesktop.so(kdemain+0x84c)[0x7f2f11a8d168] /lib64/libc.so.6(__libc_start_main+0xfd)[0x7f2f116ecc5d] kdesktop[0x400559] ======= Memory map: ======== 00400000-00401000 r-xp 00000000 08:01 1687922 /usr/lib/kde3/bin/kdesktop 00600000-00601000 r--p 00000000 08:01 1687922 /usr/lib/kde3/bin/kdesktop 00601000-00602000 rw-p 00001000 08:01 1687922 /usr/lib/kde3/bin/kdesktop 00602000-007a3000 rw-p 00000000 00:00 0 [heap] 7f2f04000000-7f2f04021000 rw-p 00000000 00:00 0 7f2f04021000-7f2f08000000 ---p 00000000 00:00 0 7f2f0a855000-7f2f0a87f000 r--p 00000000 fd:01 1617853897 /home/alecs/.fonts/verdana.ttf 7f2f0a87f000-7f2f0a8ce000 r--s 00000000 08:01 259482 /var/tmp/kdecache-alecs/ksycoca 7f2f0a8ce000-7f2f0a8eb000 r-xp 00000000 08:01 1579718 /usr/lib64/kde3/plugins/styles/plastik.so 7f2f0a8eb000-7f2f0aaeb000 ---p 0001d000 08:01 1579718 /usr/lib64/kde3/plugins/styles/plastik.so 7f2f0aaeb000-7f2f0aaec000 r--p 0001d000 08:01 1579718 /usr/lib64/kde3/plugins/styles/plastik.so 7f2f0aaec000-7f2f0aaed000 rw-p 0001e000 08:01 1579718 /usr/lib64/kde3/plugins/styles/plastik.so 7f2f0aaed000-7f2f0aaf6000 r--s 00000000 08:01 258643 /var/cache/fontconfig/4f70f4f1f809aff504a916f761d89035-le64.cache-3 7f2f0aaf6000-7f2f0aaf7000 r--s 00000000 08:01 258642 /var/cache/fontconfig/11542eed80fc875fac6eb62e351774e3-le64.cache-3 7f2f0aaf7000-7f2f0aafc000 r--s 00000000 08:01 258641 /var/cache/fontconfig/002f8b3bb9408aa18c94e6d48af134d5-le64.cache-3 7f2f0aafc000-7f2f0ab03000 r--s 00000000 08:01 256651 /var/cache/fontconfig/15c0dee3e078bddec66f56eb4cdc63c1-le64.cache-3 7f2f0ab03000-7f2f0ab05000 r--s 00000000 08:01 258639 /var/cache/fontconfig/fff3271b96dfb62ce9e5dc8e6015abf8-le64.cache-3 7f2f0ab05000-7f2f0ab0c000 r--s 00000000 08:01 258638 /var/cache/fontconfig/4b25ff9b5ef9569601908fbfb54af015-le64.cache-3 7f2f0ab0c000-7f2f0ab0f000 r--s 00000000 08:01 258637 /var/cache/fontconfig/1b22b1d0388b7833bb8a7d7211ac7294-le64.cache-3 7f2f0ab0f000-7f2f0ab11000 r--s 00000000 08:01 258636 /var/cache/fontconfig/af9adb8607cb8ce7230f7eb7df7e4e21-le64.cache-3 7f2f0ab11000-7f2f0ab13000 r--s 00000000 08:01 258635 /var/cache/fontconfig/8e172d85e8b382eb4f1b5d25ec594ea1-le64.cache-3 7f2f0ab13000-7f2f0ab14000 r--s 00000000 08:01 258634 /var/cache/fontconfig/d357389dfcf0c4e4264cc8432c69bec3-le64.cache-3 7f2f0ab14000-7f2f0ab1a000 r--s 00000000 08:01 258633 /var/cache/fontconfig/9255ad13bde4dcbf694b553faf9e9814-le64.cache-3 7f2f0ab1a000-7f2f0ab1c000 r--s 00000000 08:01 258632 /var/cache/fontconfig/15289cad4b8e7a60f1a7b7538d956000-le64.cache-3 7f2f0ab1c000-7f2f0ab35000 r--s 00000000 08:01 258631 /var/cache/fontconfig/79419bd48d02a13c99ff08cf82c31dca-le64.cache-3 7f2f0ab35000-7f2f0ab39000 r--s 00000000 08:01 258630 /var/cache/fontconfig/c32e6028be69d8115099bc1b64fb4829-le64.cache-3 7f2f0ab39000-7f2f0ab3e000 r--s 00000000 08:01 258629 /var/cache/fontconfig/044a24978ad5bb89e309a3da312e41f9-le64.cache-3 7f2f0ab3e000-7f2f0ab40000 r--s 00000000 08:01 258628 /var/cache/fontconfig/1bc4e0a1c1126743b7560ba09968a7e0-le64.cache-3 7f2f0ab40000-7f2f0ab42000 r--s 00000000 08:01 259550 /var/cache/fontconfig/602676315df2200a099db7aa99c430ab-le64.cache-3 7f2f0ab42000-7f2f0ab45000 r--s 00000000 08:01 259549 /var/cache/fontconfig/485a1f8355cd8a8a4650b1393993d618-le64.cache-3 7f2f0ab45000-7f2f0ab49000 r--s 00000000 08:01 258625 /var/cache/fontconfig/c24aad5fef9b3cb320024d26e7069141-le64.cache-3 7f2f0ab49000-7f2f0ab4b000 r--s 00000000 08:01 258624 /var/cache/fontconfig/ad1a7253c9d68382d38be4e8c7a65e31-le64.cache-3 7f2f0ab4b000-7f2f0ab50000 r--s 00000000 08:01 258623 /var/cache/fontconfig/92687af33c5f09f12325b17e982771dc-le64.cache-3 7f2f0ab50000-7f2f0ab52000 r--s 00000000 08:01 258622 /var/cache/fontconfig/41f043f6d374e50e5f13995d2d32136d-le64.cache-3 7f2f0ab52000-7f2f0ab5b000 r--s 00000000 08:01 258621 /var/cache/fontconfig/0537e0e2f367e5bb4dfc07154d5c93ff-le64.cache-3 7f2f0ab5b000-7f2f0ab5f000 r--s 00000000 08:01 258620 /var/cache/fontconfig/dc9dfbb2b5edebea3d69971c05e64842-le64.cache-3DCOP aborting (delayed) call from 'anonymous-4050' to 'kdesktop' KCrash: Application 'kdesktop' crashing... Traced to something that changed in libkdeinit_kdesktop.so/libkdeinit_kdesktop.la (In reply to comment #2) > Traced to something that changed in > libkdeinit_kdesktop.so/libkdeinit_kdesktop.la Update: Seems to be related to the fact that a complex C++ constructor chain is initiated by creating a new C++ object from within a standard C function. Specifically, in kdesktop/main.cc, extern "C" KDE_EXPORT int kdemain( int argc, char **argv ) calls KDesktop desktop( x_root_hack, wait_for_kded );, which prompts the corruption and crash. Executing KDesktop desktop( x_root_hack, wait_for_kded ); from within a C++ method for testing purposes does not cause the crash. So, it would seem that glibc does not handle the mixing of C and C++ properly any longer. More tests are in progress as I write this. (In reply to comment #3) > (In reply to comment #2) More detail: It is related to the order of construction; the C/C++ difference mentioned above was a red herring unfortunately. I can easily and repeatably demonstrate that constructing a KBackgroundManager object from within a KDesktop object will fail 100% of the time. Constructing the KBackgroundManager and KDesktop objects from within kdemain() does NOT fail, but this also does not constitute a viable workaround. More info to be posted as I have it. This is definitely a glibc bug; I am not sure if a workaround can be found. (In reply to comment #4) > (In reply to comment #3) > > (In reply to comment #2) > > More detail: > It is related to the order of construction; the C/C++ difference mentioned > above was a red herring unfortunately. > > I can easily and repeatably demonstrate that constructing a KBackgroundManager > object from within a KDesktop object will fail 100% of the time. Constructing > the KBackgroundManager and KDesktop objects from within kdemain() does NOT > fail, but this also does not constitute a viable workaround. > > More info to be posted as I have it. This is definitely a glibc bug; I am not > sure if a workaround can be found. One more note: avoiding new and instead instantiating KBackgroundManager as a private object seems to avoid the corruption. However, taking advantage of this will require some work to redesign the init sequence, and will make it harder to understand. I believe this issue has been fixed in SVN revision 1227273. Can you please try patching your Trinity 3.5.12 sources with the corresponding patch file available at http://www.trinitydesktop.org/patches/ and verify that the problem is fixed on your systems as well? Alternatively you can attempt to install kdebase-trinity from the Trinity Nightly Builds PPA on a clean Ubuntu Maverick-compatible Linux installation and verify the problem has been fixed. Thanks! Thank you, fixed ! |