FS#29467 - [qt] breaks krunner kscreensaver
Attached to Project:
Arch Linux
Opened by Christian Chartron (Scalar) - Sunday, 15 April 2012, 12:04 GMT
Last edited by Andrea Scarpino (BaSh) - Wednesday, 09 May 2012, 08:27 GMT
Opened by Christian Chartron (Scalar) - Sunday, 15 April 2012, 12:04 GMT
Last edited by Andrea Scarpino (BaSh) - Wednesday, 09 May 2012, 08:27 GMT
|
Details
Description: after updating to the newest qt-version krunner
wont start anymore. a downgrade fixed it for me
Additional info: qt-4.8.1-1 working; qt-4.8.1-2 not working; up to date kde |
This task depends upon
Closed by Andrea Scarpino (BaSh)
Wednesday, 09 May 2012, 08:27 GMT
Reason for closing: Fixed
Additional comments about closing: kdebase-workspace 4.8.3-2
Wednesday, 09 May 2012, 08:27 GMT
Reason for closing: Fixed
Additional comments about closing: kdebase-workspace 4.8.3-2
Is your system fully up-to-date? Did you add some package to the pacman ignore list?
You can remove ntrack as we do not use it anymore, also re-install our openssl package from [core].
[charti@greyFox ~]$ krunner
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
anyway, thanks for your support so far
You added three patches in 4.8.1-2. I would be happy to test packages with each patch applied alone in order to find the source of the issue. But building qt on my own is not something I have the time for.
Please try this package: http://pkgbuild.com/~andrea/pkgs/qt/trunk/qt-4.8.1-3-x86_64.pkg.tar.xz
This is built with GCC 4.7 and with no patches.
shellout.log (12.8 KiB)
xsession-errors (137.2 KiB)
Assistant is broken too because of GCC.
Looking at https://bugs.kde.org/show_bug.cgi?id=298131 seems this is a configuration error, try to remove the plasma configuration:
$ rm ~/.kde4/share/config/plasma*rc
$ qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
is not working anymore and when I run
$ xrandr --output LVDS1 --primary --pos 0x0 --mode 1440x900 --output VGA1 --right-of LVDS1 --mode 1920x1200
plasma-workspace crashes.
Downgrading qt to
Version : 4.8.1-1
solved the problems.
Download package frpm the arch linux rollbackmachine:
bash$ wget http://arm.konnichi.com/2012/04/04/extra/os/x86_64/qt-4.8.1-1-x86_64.pkg.tar.xz
bash# pacman -U qt-4.8.1-1-x86_64.pkg.tar.xz
Downgrading Qt solves it!
Does anyone use [testing] and has this issue? I use gcc-libs-multilib too.
I found nice workaround, when i try to debug problem with krunner, kscreensaver, etc..
Next steps solve this problem without downgrading to previous version of Qt:
1. Sync abs tree from root
2. Go to /var/abs/extra/kdebase-workspace
3. Edit PKGBUILD and change:
-DCMAKE_BUILD_TYPE=Release
to
-DCMAKE_BUILD_TYPE=Debug
4. Same for /var/abs/extra/kdelibs
5. Build and install both packages with 'pacman -U'
After this trick krunner, kscreensaver, and some other components of KDE start working as expected.
Also i prepare compiled packages (for x86_64):
http://lsupport.net/resources/files-library/category/6-packages-with-debug-symbols.html
How about keeping gcc 4.6 around and using it to compile packages that cannot be safely compiled with gcc 4.7, until either the package or gcc fix the problem? That seems a much more reasonable solution, if indeed the problem is caused by the switch to gcc 4.7 (as seems likely).
http://pkgbuild.com/~andrea/pkgs/kdebase-workspace/trunk/kdebase-workspace-4.8.2-3-i686.pkg.tar.xz
http://pkgbuild.com/~andrea/pkgs/kdebase-workspace/trunk/kdebase-workspace-4.8.2-3-x86_64.pkg.tar.xz
I'll provide kdelibs packages ASAP.
Dmitry you simply did a rebuild. You need to add the !strip option to the PKGBUILD to enable the debug mode.
http://pkgbuild.com/~andrea/pkgs/kdelibs/trunk/kdelibs-4.8.2-2-i686.pkg.tar.xz
http://pkgbuild.com/~andrea/pkgs/kdelibs/trunk/kdelibs-4.8.2-2-x86_64.pkg.tar.xz
Please install kdelibs 4.8.2-2, kdebase-workspace 4.8.2-3, qt 4.8.1-2. Then logout/reboot and try krunner.
Thanks!
I did not try Dmitry's packages with "-DCMAKE_BUILD_TYPE=Debug", but maybe that introduces other changes besides debug symbols.
Please try my packages, i test them, they works. Hope my packages will work for you too. Just try to build them from abs, with option -DCMAKE_BUILD_TYPE=Debug
Attached you find the kcrash logs BEFORE I built and installed kdebase-workspace. Maybe they're still useful?
The first one 211556 is with standard fully updated system.
The second one 214052 is with Andrea's packages installed.
krunner-20120425-214052.kcrash (2 KiB)
kdelibs 4.8.2-2, kdebase-workspace 4.8.2-3, qt 4.8.1-2
Please try this package: http://pkgbuild.com/~andrea/pkgs/qt/trunk/qt-4.8.1-3-x86_64.pkg.tar.xz
This is built with GCC 4.7 and with no patches.
because it's 404'd. But I tried kdebase-workspace and kdelibs:
First -Syu
[2012-04-25 21:25] Running 'pacman -S -u'
[2012-04-25 21:25] starting full system upgrade
[2012-04-25 21:25] upgraded cmake (2.8.8-1 -> 2.8.8-2)
[2012-04-25 21:25] upgraded qt (4.8.1-1 -> 4.8.1-2)
[2012-04-25 21:25] upgraded thunderbird (11.0.1-2 -> 12.0-1)
[2012-04-25 21:25] upgraded virtuoso (6.1.4-2 -> 6.1.5-1)
Then I installed kdebase-workspace and kdelibs
[2012-04-25 21:28] Running 'pacman -U kdebase-workspace-4.8.2-3-x86_64.pkg.tar.xz kdelibs-4.8.2-2-x86_64.pkg.tar.xz'
[2012-04-25 21:28] upgraded kdebase-workspace (4.8.2-2 -> 4.8.2-3)
[2012-04-25 21:28] upgraded kdelibs (4.8.2-1 -> 4.8.2-2)
It did not work, so I compiled kdebase-workspace myself as Dmitry said:
[2012-04-25 22:24] Running 'pacman -U /home/shared/abs/pkg/kdebase-workspace-4.8.2-2-x86_64.pkg.tar.xz'
[2012-04-25 22:28] upgraded kdebase-workspace (4.8.2-3 -> 4.8.2-2)
I don't particularly like this solution, because the upgrade adds 300MB.
So you are saying that a simple rebuild (with no edit) doesn't fix it, does it?
-DCMAKE_BUILD_TYPE=Debug *without* !strip works too. Code looks compiled with optimizations, so I'm now looking at the difference DCMAKE_BUILD_TYPE makes considering I'm stripping the symbols anyway.
-DCMAKE_BUILD_TYPE=Debug absolutely makes a difference, regardless of stripping. This comment: https://bugs.archlinux.org/task/29467#comment93195 is absolutely wrong.
I've built twice, once with Release and once with Debug, both _with_ stripping. I've renamed the tarball built with Debug.
Then I've run: diff -u <(tar vtJf kdebase-workspace-4.8.2-2-x86_64.pkg.tar.xz | awk '{print $3 " " $6}' | sort -rn) <(tar vtJf kdebase-workspace-4.8.2-2-x86_64.pkg.tar.xz.debug| awk '{print $3 " " $6}' | sort -rn)
This is a sample from the top of the diff:
-1307272 usr/lib/libkdeinit4_kwin.so
-1282472 usr/lib/libkdeinit4_kwin_gles.so
+1529032 usr/lib/libkdeinit4_kwin.so
+1508328 usr/lib/libkdeinit4_kwin_gles.so
-793096 usr/lib/kde4/kwin4_effect_builtins.so
-780552 usr/lib/kde4/kwin4_effect_gles_builtins.so
-747632 usr/lib/kde4/plugins/styles/oxygen.so
+899944 usr/lib/kde4/kwin4_effect_builtins.so
+887400 usr/lib/kde4/kwin4_effect_gles_builtins.so
+870600 usr/lib/kde4/plugins/styles/oxygen.so
+682032 usr/lib/libkdeinit4_plasma-desktop.so
+606424 usr/lib/kde4/kcm_fontinst.so
+596200 usr/lib/libplasmagenericshell.so.4.8.0
-542512 usr/lib/libkdeinit4_plasma-desktop.so
-516016 usr/lib/libkdeinit4_ksysguard.so
-514160 usr/lib/libplasmagenericshell.so.4.8.0
-503720 usr/lib/kde4/kcm_fontinst.so
-421240 usr/lib/libtaskmanager.so.4.8.0
+577608 usr/lib/libkdeinit4_ksysguard.so
+511552 usr/lib/libtaskmanager.so.4.8.0
Debug binaries obviously have asserts or debug code or different optimizations (though definitely not -O0 like I feared). They are different after stripping.
diff of `size -A`:
-libkdeinit4_kwin.so.release :
+libkdeinit4_kwin.so.debug :
section size addr
.note.gnu.build-id 36 456
-.gnu.hash 248 496
-.dynsym 42264 744
-.dynstr 62072 43008
-.gnu.version 3522 105080
-.gnu.version_r 192 108608
-.rela.dyn 69888 108800
-.rela.plt 32448 178688
-.init 14 211136
-.plt 21648 211152
-.text 827944 232800
-.fini 9 1060744
-.rodata 71314 1060768
-.eh_frame_hdr 22868 1132084
-.eh_frame 107924 1154952
-.init_array 472 3363656
-.fini_array 8 3364128
-.jcr 8 3364136
-.data.rel.ro 25520 3364160
-.dynamic 928 3389680
-.got 848 3390608
-.got.plt 10840 3391464
-.data 68 3402304
-.bss 1792 3402400
+.gnu.hash 1184 496
+.dynsym 44376 1680
+.dynstr 65381 46056
+.gnu.version 3698 111438
+.gnu.version_r 192 115136
+.rela.dyn 69912 115328
+.rela.plt 34176 185240
+.init 14 219416
+.plt 22800 219440
+.text 846808 242240
+.fini 9 1089048
+.rodata 136114 1089088
+.eh_frame_hdr 53068 1225204
+.eh_frame 208844 1278272
+.init_array 472 3584848
+.fini_array 8 3585320
+.jcr 8 3585328
+.data.rel.ro 25520 3585344
+.dynamic 928 3610864
+.got 856 3611792
+.got.plt 11416 3612648
+.data 68 3624064
+.bss 1824 3624160
.comment 78 0
-Total 1302953
+Total 1527790
I'm sorry, to have no time to debug it.
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
KCrash: Attempting to start /usr/bin/krunner from kdeinit
sock_file=/home/conner/.kde4/socket-arch-laptop/kdeinit4__0
KCrash: Application 'krunner' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/conner/.kde4/socket-arch-laptop/kdeinit4__0
QSocketNotifier: Invalid socket 10 and type 'Read', disabling...
Air
Air for Notebooks
Aya
Slim Glow
Oxygen
Only crashing with androbit from the themes I have tested. Don't have time today to test all the stock themes.
Not advisable, but making a backup (make sure you copy and paste the notes somewhere if you're using the widget) and deleting .kde4 fixes the problem for me with some caveat. I have to enable desktop effects, otherwise I'd get some thread crashes.
OK so I've found out what this crash was about but on Frugalware linux, I've already fixed it there and all seems fine. I'm not sure what goes wrong on other distro like Arch but it could be the same or similar. Here's what to do:
1. Make debug version of Qt4 ( with debug symbols so gdb can find line numbers and such )
2. Make version with debug flags stuff , kdeworkspace on Frugalware. Please note that I don't mean compile KDE with debug option, then the error will be gone. You should modify the flags for KDE cmake , can't remeber right now , and add -ggdb3. I can find it again if you need.
3. Now gdb krunner 4. from gdb prompt : catch throw
5. run --nofork
6. You should now have a backtrace of where the exception is thrown from. It's not what DrKonqi displays as you will see. Line numbers should be included.
Or you could just write here and on the KDE bug tracker about how it happens to you too an what workarounds you've found.
http://mail.kde.org/pipermail/plasma-devel/attachments/20120508/b7d0e586/attachment.diff
The source if from the conversation here:
http://mail.kde.org/pipermail/plasma-devel/2012-May/019472.html
http://pkgbuild.com/~andrea/pkgs/kdebase-workspace/trunk/kdebase-workspace-4.8.3-2-i686.pkg.tar.xz
http://pkgbuild.com/~andrea/pkgs/kdebase-workspace/trunk/kdebase-workspace-4.8.3-2-x86_64.pkg.tar.xz
EDIT: I compiled the package by myself[1], I did not use Andrea's package.
[1]:
yaourt -G kdebase-workspace
cd kdebase-workspace
makepkg -o
<patch the file>
makepkg -escfi
<reboot>