Summary: | Oxygen-Transparent needs exception for new screenlocker | ||
---|---|---|---|
Product: | [Plasma] Oxygen | Reporter: | Sandro <sandro.m> |
Component: | style | Assignee: | Hugo Pereira Da Costa <hugo.pereira.da.costa> |
Status: | RESOLVED FIXED | ||
Severity: | major | CC: | austin.hoppe7, ddomenichelli, funtoos, gh403, hugo.pereira.da.costa, njoolfoo, oliver.henshaw, pprkut, rellig, tpr, vortex |
Priority: | NOR | ||
Version: | 4.10 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | output of xsession-errors during screen lock |
Description
Sandro
2013-02-01 02:07:26 UTC
Does this happen with all type of locker? That is, "Simple locker", "Desktop Widgets" and "Screen saver". If you switch to another vt (e.g. with Ctrl+Alt+F2) you might be able to gather some information about what's going wrong. If you run 'top' in another VT while the locker is running can you see any processes taking excessive cpu time or anything suspicious? What output do you see from 'tail -f .xsession-errors' after starting the screenlocker? This is happening on this system regardless of the type of screensaver. As far as information, there really isn't a whole bunch. The only "useful" bit is the following from Xorg.log. [112697.593] (II) XKB: reuse xkmfile /var/lib/xkb/server-6F7827EA6FFBF3EA559926152BEEF8C45031C4B2.xkm [128931.705] (II) XKB: reuse xkmfile /var/lib/xkb/server-6F7827EA6FFBF3EA559926152BEEF8C45031C4B2.xkm It's worth noting that this may be environmental. I have a system at work running ubuntu/XFCE, and I thought to install kubntu-dekstop from the experimental PPA such that I was specifically running 4.9.98 - this did not happen. I also tried it in a VM and I wasn't able to reproduce it again. Can you open kdebugdialog from the command line and make sure "plasma-overlay", "kscreenlocker_greet" and "ksmserver" are all enabled? And then there should be more interesting output appearing in .xsession-errors, from the next login onwards. You might need to open kdebugdialog, close it and run the screensaver and logout and in again to get these debug areas to appear for selection in kdebugdialog (it's the ones without numbers in front that are most interesting). Hopefully this will make sense when you've got kdebugdialog open in front of you... Hi Oliver, Thanks for following up. I just updated to kde 4.10 release (through the standard backports, got rid of the experimental kubuntu ppa) on that desktop and it's still got that problem. My work desktop is also on 4.10 and it's fine, as is my laptop running 4.10. I've actually been thinking of wiping the home PC and reinstalling - I have backups so the whole thing would take me 30-45 minutes max. Given I haven't been able to experience this again on any other system, I'm tempted to close this and not burden you with this crap. Before I do though, I'll give you a chance to chime in on that. If you feel this can be potentially useful debugging/learning to help improve KDE as a whole, I'll gladly play along and hold off on reinstalling. I'll check it tonight when I get home and I'll fill in the details I find. I think it's worth investigating this for a little longer, if that's alright with you. If you have an environmental problem that stops the screenlocker working, you might not be the only one. The screen locker seems to be working just fine for me in normal use, but I have encountered the described problem earlier. The dialog never appears and the only way out is to kill X.. Any ideas what would be the best route to try to debug that? Or even unlock the screen without killing everything, like killing kscreenlocker did before? I'm using Arch Linux with KDE 4.10 (release) and I still have this problem. After locking the screen you cannot unlock, no matter what you do. The screen just stays black. Also when using the "screen saver" locker, the screen saver is not displayed - just a black screen. The following is logged in .xsession-errrors (with debug options enabled as mentioned in an earlier comment): ksmserver(13180) ScreenLocker::KSldApp::lock: lock called ksmserver(13180) ScreenLocker::LockWindow::showLockWindow: Lock window Id: 29360145 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 29360145 Fontconfig warning: "/etc/fonts/conf.d/50-user.conf", line 9: reading configurations from ~/.fonts.conf is deprecated. ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400322 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400324 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400330 ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400338 ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400351 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400364 kscreenlocker_greet(13448)/kwin ScreenLocker::Greeter::loadGreetPlugin: GreeterPlugin "classic" ( classic , Username + password (classic) ) loaded ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400373 kscreenlocker_greet(13448) KeyboardConfig::load: configuring layouts true configuring options false kscreenlocker_greet(13448) X11Helper::getGroupNames: Fetched layout groups from X server: layouts: ("de", "us") variants: ("nodeadkeys", "") kscreenlocker_greet(13448) X11Helper::getGroupNames: Fetched layout groups from X server: layouts: ("de", "us") variants: ("nodeadkeys", "") ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400381 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QDeclarativeExpression: Expression "(function $model() { return sessions.model })" depends on non-NOTIFYable properties: ScreenLocker::SessionSwitching::model QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 QPainter::begin: Paint device returned engine == 0, type: 2 file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill. file:///usr/lib/kde4/imports/org/kde/plasma/components/Button.qml:194:5: QML Row: Possible anchor loop detected on fill. QPainter::begin: Paint device returned engine == 0, type: 2 file:///usr/lib/kde4/imports/org/kde/plasma/extras/ScrollArea.qml:96: TypeError: Result of expression 'verticalScrollBar' [null] is not an object. file:///usr/lib/kde4/imports/org/kde/plasma/extras/ScrollArea.qml:120: TypeError: Result of expression 'horizontalScrollBar' [null] is not an object. ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 73400373 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 73400381 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400389 ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400397 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: MapNotify: 73400397 X Error: BadPixmap (invalid Pixmap parameter) 4 Major opcode: 56 (X_ChangeGC) Resource id: 0x0 kwin(13185) KWin::Toplevel::updateUnredirectedState: Unredirecting: 'ID: 29360145 ' ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: MapNotify: 29360145 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 29360159 ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 73400408 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 214 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: Unknown toplevel for MapNotify ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 37749668 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 37750075 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 37750075 ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 37750083 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 37750083 ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 37750075 plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:189:21: QML TextEdit: Possible anchor loop detected on fill. plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:143:13: QML Item: Binding loop detected for property "height" plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:143:13: QML Item: Binding loop detected for property "height" plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:143:13: QML Item: Binding loop detected for property "height" file:///usr/lib/kde4/imports/org/kde/plasma/components/TabBar.qml:150:5: QML Item: Possible anchor loop detected on fill. file:///usr/lib/kde4/imports/org/kde/plasma/components/TabBar.qml:150:5: QML Item: Possible anchor loop detected on fill. ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 37750316 ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: Already existing toplevel for ReparentNotify ksmserver(13180) ScreenLocker::LockWindow::x11Event: CreateNotify: 37750324 plasma-desktop(13197)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 37750324 kio_http(13411)/kio (TCPSlaveBase) KIO::TCPSlaveBase::disconnectFromHost: kio_http(13413)/kio (TCPSlaveBase) KIO::TCPSlaveBase::disconnectFromHost: plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:189:21: QML TextEdit: Possible anchor loop detected on fill. plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:143:13: QML Item: Binding loop detected for property "height" plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:143:13: QML Item: Binding loop detected for property "height" plasmapackage:/ui/NotificationDelegate/NotificationDelegate.qml:143:13: QML Item: Binding loop detected for property "height" ksmserver(13180)/plasma ScreenLocker::LockWindow::x11Event: UnmapNotify: 37750324 [/usr/bin/nepomukservicestub] nepomukfilewatch(13332)/nepomuk (filewatch service) Nepomuk2::FileWatch::watchFolder: "/home/ich" [/usr/bin/nepomukservicestub] nepomukfileindexer(13333)/nepomuk (strigi service) Nepomuk2::IndexScheduler::slotScheduleIndexing: Idle I can confirm the bug as well. I am running Arch x86_64 with KDE 4.10 (release). When I sleep the computer, it locks the screen (there isn't an option to change this AFAIK) and this doesn't work. The screen saver still displays fine, again until you lock the screen. Created attachment 77080 [details]
output of xsession-errors during screen lock
Oliver, kdebugdialog has no plasma-overlay or kscreenlocker_greet, even after the logout/login you suggested. I did see plasma-desktop appear and selected it. I also probably should have deselected a whole lot of stuff too... I elected to attach the log output rather than flood the ticket. Hopefully in spite of the missing kdebugdialog items above, you'll still find something of value in it. I echo'd ###START### into it just before hitting ctrl-alt-L, and copied everything from that point to the end into the file. Uh oh, it seems the widget style "Oxygen Transparent" caused the problems for me. I switched back to Oxygen and the unlocker is working again. I should probably contact the author of Oxygen Transparent. (In reply to comment #8) > When I sleep the computer, it locks the screen (there isn't an option to > change this AFAIK) System Setting ->Power Management->Advanced Settings->"Lock screen on resume" (In reply to comment #11) > Uh oh, it seems the widget style "Oxygen Transparent" caused the problems > for me. I switched back to Oxygen and the unlocker is working again. I > should probably contact the author of Oxygen Transparent. Can you still reproduce the problem if you switch back to Oxygen Transparent? It's could be a caching problem or it could indeed be the theme itself. (In reply to comment #10) > kdebugdialog has no plasma-overlay or kscreenlocker_greet, even after the > logout/login you suggested. I did see plasma-desktop appear and selected > it. I also probably should have deselected a whole lot of stuff too... I > elected to attach the log output rather than flood the ticket. Hopefully in > spite of the missing kdebugdialog items above, you'll still find something > of value in it. I can't see any obvious problems, but maybe someone else will. Can you try switching the theme (and maybe switching back) and see if that makes a difference? Adding an exception for the Oxygen Transparent theme fixes the issue, so it seems to be a compatibility issue with the theme itself. I'm not sure which piece of software is at fault; on the one hand, the theme should work with any software, but on the other, the software should work with any theme... How did you specifiy the exception (i.e. what did you type into the exceptions list)? It didn't work when I tried. I hadn't thought of that... I don't have time now, but I'll recompile oxygen-transparent for kde 4.10. I initially installed it on my home PC using 4.9. I added the PPA for 4.10 to my laptop *before* adding oxygen-transparent and it works well there. I don't use it on my work PC and I had no issue there. the oxygen-transparent setup script has flags you can set for which series of KDE to build for, I'm betting this may be the problem. Sorry for the nonspecific suggestion. To clarify, add an exception (System Settings > Application Appearance > Style > Applications > [Configure...] > [Exceptions ...]) for the program "kscreenlocker_greet". Obviously, no quotes. There is already a "kscreenlocker" exception built in, but it does not help. Can confirm this bug here. The screenlocker breaks with oxygen transparent. Adding the exception fixes it. Running 4.10.0 with oxygen transparent 4.10 compiled against it. "kscreenlocker_greet" seems to be hitting a SEGV in 4.10.0 gentoo install I have. And I am not using "oxygen transparent" theme. I am using default oxygen theme. I have tried playing with other themes and I still get completely "locked" out if I lock screen from kmenu, meaning, nothing (mouse, keyboard) works after that. Manual logout from vt terminal is the only option. (In reply to comment #20) > "kscreenlocker_greet" seems to be hitting a SEGV in 4.10.0 gentoo install I > have. And I am not using "oxygen transparent" theme. Do you have a backtrace for this crash? If so, please file a new bug in locker-qml. And see comment #3 for instructions on how to get interesting log output in .xsession-errors. Hugo, see comment #11 onwards. Is this likely to just be a problem with oxygen-transparent or do we need to worry about other styles too? @Olivier: you could also check with bespin (when setting on background translucency) What happens is likely due to the fact that Qt internally changes the Window Id (creates a new X window) when TranslucentBackground is set (here by oxygen). So if the screenlocker relies on some WId, it might get messed up by the above operation. (I don't know the code, but that would explain). Note that in principle one can track "QEvent::WinIdChange" to detect these kind of modifications ... In any case I can easily add the exception built-in. Git commit 962f6c63bb3e93994a924356fa67c16c6bb3b336 by Hugo Pereira Da Costa. Committed on 19/02/2013 at 15:54. Pushed by hpereiradacosta into branch 'KDE/4.10'. added kscreenlocker_greet to blacklist. M +1 -1 style/oxygen.kcfg http://commits.kde.org/oxygen-transparent/962f6c63bb3e93994a924356fa67c16c6bb3b336 Git commit 9c3b5c17f68193281a7abd7fc14b007c20def412 by Hugo Pereira Da Costa. Committed on 19/02/2013 at 15:54. Pushed by hpereiradacosta into branch 'master'. added kscreenlocker_greet to blacklist. M +1 -1 style/oxygen.kcfg http://commits.kde.org/oxygen-transparent/9c3b5c17f68193281a7abd7fc14b007c20def412 *** Bug 318750 has been marked as a duplicate of this bug. *** *** Bug 318766 has been marked as a duplicate of this bug. *** *** Bug 320627 has been marked as a duplicate of this bug. *** This still causes issues with the (experimental) transparency feature in QCurve. Confirmed that blacklisting kscreenlocker and kscreenlocker_greet manually solves the problem. QtCurve, that is. It looks like kscreenlocker was already partially blacklisted, in about half of the available fields. |