linuxmint / cinnamon-screensaver

The Cinnamon screen locker and screensaver program
GNU General Public License v2.0
151 stars 86 forks source link

screensaver sometimes still active after login #256

Open Mintulix opened 6 years ago

Mintulix commented 6 years ago

 * Cinnamon-Screensaver version (3.6.1)
 * Distribution - (Mint 18.3)
 * Graphics hardware *and* driver used
Graphics:  Card-1: Intel 3rd Gen Core processor Graphics Controller
           bus-ID: 00:02.0
           Card-2: Advanced Micro Devices [AMD/ATI] Venus XT [Radeon HD 8870M / R9 M270X/M370X]
           bus-ID: 01:00.0
           Display Server: X.Org 1.18.4 drivers: ati,radeon,intel (unloaded: fbdev,vesa)
           Resolution: 1920x1080@60.21hz
           GLX Renderer: Mesa DRI Intel Ivybridge Mobile
           GLX Version: 3.0 Mesa 17.0.7 Direct Rendering: Yes
 * 64 bit

**Issue**
screensaver sometimes still active after login (and after suspend)

https://gist.github.com/anonymous/6b30d5f58391c06fe080a8fce94f9632
mtwebster commented 6 years ago

Can I get you to try to reproduce this using cinnamon-screensaver --debug (you can use cinnamon-screensaver-command -e or killall cinnamon-screensaver

Also, is there any generated report for this? (check "System Reports" in the menu)

Thanks

Mintulix commented 6 years ago

I'll try with debug, but it's only sometimes... No system reports for this (I had a few for other events). I had this before (18.1 or 18.2), so I still have a key combination for a screensaver "restart" to solve this cinnamon-screensaver-command -e >/dev/null 2>&1 && nohup cinnamon-screensaver >/dev/null 2>&1 &

Mintulix commented 6 years ago

Ok, I have a log for you... Here is what I did: Connect an HDMI-cable to get sound with an spdif-converter. This is interpreted as second monitor wich is absent, I use it only to send the sound to a receiver. Also I switched to a second user, watched some movies. Then I logged out from user 2 and logged back into my user account, then the screensaver was still active.

Log: cinnamon-screensaver --debug Debug mode active Cinnamon Screensaver support not found in current theme - adding some... Trying to connect to logind... Starting screensaver... Successfully using logind Received Lock from session manager Found 2 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Monitor 1 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080

(cinnamon-screensaver-main.py:3110): CScreensaver-WARNING **: Error setting property 'OverviewActive' on interface org.Cinnamon: Zeitüberschreitung wurde erreicht (g-io-error-quark, 24)

(cinnamon-screensaver-main.py:3110): CScreensaver-WARNING *: Error setting property 'ExpoActive' on interface org.Cinnamon: Zeitüberschreitung wurde erreicht (g-io-error-quark, 24) Found 2 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Monitor 1 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 Received Unlock from session manager authClient cancel requested, but no helper process Received Active changed from session manager Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 authClient cancel requested, but no helper process CsScreen dispose CsScreen finalize Found 2 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Monitor 1 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 authClient cancel requested, but no helper process CsScreen dispose CsScreen finalize Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/util/trackers.py", line 38, in do_callback ret = callback(args) File "/usr/share/cinnamon-screensaver/floating.py", line 58, in align_clock if status.screen.get_n_monitors() > 1: AttributeError: 'NoneType' object has no attribute 'get_n_monitors' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 901, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry'

mtwebster commented 6 years ago

Okay, something like this never occurred to me.. I've ordered one of these extractors.. I'm curious what's happening, and how our libraries interpret that sort of device. Should have in a couple days. If I can reproduce this, a fix will be pretty simple.

mtwebster commented 6 years ago

Can you try this file out:

https://www.dropbox.com/s/il1y8cv20pm5jzl/stage.py?dl=0

Download it to some folder, then open a terminal in that folder and run:

sudo cp stage.py /usr/share/cinnamon-screensaver

Then kill and restart the screensaver.

Thanks

Mintulix commented 6 years ago

Thanks a lot Michael, also for ordering an HDMI-Converter just for debugging :-). I patched stage.py, will test it later this evening and the next days and report.

Mintulix commented 6 years ago

Hmm, just had the bug again with the patched stage.py. HDMI was not plugged in this time, but I switched users again. I think I have to test a few more days with the --debug switch on...

Mintulix commented 6 years ago

Hi, I have a new debug log. Just changed users like before, no HDMI cable involved (sorry for misleading).

... Output from pam helper: 'CS_PAM_AUTH_BUSY_FALSE' authClient idle add auth-busy Output from pam helper: '' authClient initialize... initialized already: True authClient initialize... initialized already: True authClient message to child authClient initialize... initialized already: True auth_message_handler processing response string should interrupt: 0 Got response Got respose to message style 1: interrupt:0 Msg handler returned 1 Output from pam helper: 'CS_PAM_AUTH_BUSY_TRUE' authClient idle add auth-busy Output from pam helper: '' pam_authenticate (...) ==> 0 (Erfolgreich) pam_acct_mgmt (...) ==> 0 (Erfolgreich) pam_setcred (...) ==> 0 (Erfolgreich) pam_end (...) ==> 0 (Success) Verify user returned: TRUE Output from pam helper: 'CS_PAM_AUTH_SUCCESS' authClient idle add success Output from pam helper: '' authClient message to child authClient helper process completed... CsScreen dispose CsScreen finalize Found 1 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 authClient initialize... initialized already: False pam_start ("cinnamon-screensaver", "user-name", ...) ==> 0 (Erfolgreich) Handling message style 1: 'Passwort: ' Waiting for respose to message style 1: 'Passwort: ' Waiting for lock Waiting for response Got message style 1: 'Passwort: ' Output from pam helper: 'CS_PAM_AUTH_SET_PROMPTPasswort: ' authClient idle add auth-prompt Output from pam helper: 'CS_PAM_AUTH_BUSY_FALSE' authClient idle add auth-busy Output from pam helper: '' authClient initialize... initialized already: True authClient initialize... initialized already: True authClient message to child authClient initialize... initialized already: True auth_message_handler processing response string should interrupt: 0 Got response Got respose to message style 1: interrupt:0 Msg handler returned 1 Output from pam helper: 'CS_PAM_AUTH_BUSY_TRUE' authClient idle add auth-busy Output from pam helper: '' pam_authenticate (...) ==> 0 (Erfolgreich) pam_acct_mgmt (...) ==> 0 (Erfolgreich) pam_setcred (...) ==> 0 (Erfolgreich) pam_end (...) ==> 0 (Success) Verify user returned: TRUE Output from pam helper: 'CS_PAM_AUTH_SUCCESS' authClient idle add success Output from pam helper: '' authClient message to child Error writing to child - Fehler beim Schreiben in den Dateideskriptor: Datenübergabe unterbrochen (broken pipe) authClient helper process completed... CsScreen dispose CsScreen finalize Found 1 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 authClient cancel requested, but no helper process CsScreen dispose CsScreen finalize Received Lock from session manager Found 1 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080

(cinnamon-screensaver-main.py:32393): CScreensaver-WARNING **: Error setting property 'OverviewActive' on interface org.Cinnamon: Zeitüberschreitung wurde erreicht (g-io-error-quark, 24)

(cinnamon-screensaver-main.py:32393): CScreensaver-WARNING *: Error setting property 'ExpoActive' on interface org.Cinnamon: Zeitüberschreitung wurde erreicht (g-io-error-quark, 24) Found 1 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 Received Unlock from session manager authClient cancel requested, but no helper process Received Active changed from session manager Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 authClient cancel requested, but no helper process CsScreen dispose CsScreen finalize Found 1 Xinerama screens on display :0 Monitor 0 is 0,0 1920 x 1080 Cinnamon Screensaver compiled without Solaris Xinerama support Scale factor of 1 applied. Monitor 0 is 0,0 1920 x 1080 Stage.update_geometry - new backdrop position: 0, 0 new size: 1920 x 1080 authClient cancel requested, but no helper process CsScreen dispose CsScreen finalize Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 904, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/util/trackers.py", line 38, in do_callback ret = callback(args) File "/usr/share/cinnamon-screensaver/floating.py", line 58, in align_clock if status.screen.get_n_monitors() > 1: AttributeError: 'NoneType' object has no attribute 'get_n_monitors' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 904, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 904, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 904, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry' Traceback (most recent call last): File "/usr/share/cinnamon-screensaver/stage.py", line 904, in position_overlay_child monitor_rect = status.screen.get_monitor_geometry(current_monitor) AttributeError: 'NoneType' object has no attribute 'get_monitor_geometry'

LinuxOnTheDesktop commented 3 years ago

For what it is worth: I too, but on Mint 20.2, see an error message (in my log) similar to one reported here. That error message that I see is: 'org.cinnamon.ScreenSaver: Error writing to child - Error writing to file descriptor: Broken pipe'.

LinuxOnTheDesktop commented 3 years ago

On weirdness caused by HDMI cables: please cf. this open issue filed against Cinnamon.