lilyinstarlight / nixos-cosmic

Flake for using COSMIC on NixOS
MIT License
359 stars 25 forks source link

greeter: requires restarting cosmic-greeter-daemon to login #126

Closed colemickens closed 6 days ago

colemickens commented 4 months ago

Hi,

These days, every time I start my Cosmic specialisation, I get a blank gray screen with a working cursor. This implies that cosmic-comp came up, but greeter failed to start up enough to even paint a (fallback) wallpaper.

If I switch to tty2, restart cosmic-greeter-daemon, switch back to tty1, the greeter loads and I can login.

I'm reporting this here, it may be one of these, or a combo. It seems others aren't easily reproing, maybe others will chime in with more thoughts/data:

  1. We don't properly configure the greeter services to match upstream.
  2. Something is wrong with how upstream prescribes running the greeter services.
  3. There's simply a bug in greeter/greeter-daemon and I'm just getting unlucky?

Certainly feels like a race or mis-sequencing somewhere.

(I did spot check upstream, this module, etc. Nothing... seems wrong?)

mbrea-c commented 3 months ago

I can reproduce this consistently on the latest kernel (6.9) but not on LTS (6.6). My laptop doesn't work well with the LTS kernel so I'm also trying to root cause this, so far no luck.

colemickens commented 3 months ago

@mbrea-c Just for the sake of gathering info, etc, can you provide details about your setup. For example, are you also on a dual-AMD gpu system?

mbrea-c commented 3 months ago

Sure! I'm also on dual-amd, specifically on a framework 16 with the following specs:

    System: Ryzen™ 9 7940HS
    Storage: WD_BLACK™ SN850X NVMe™- M.2 2280 - 2TB
    Memory: DDR5-5600 - 32GB (2 x 16GB)
    Expansion Bay Module: Graphics Module (AMD Radeon™ RX 7700S)

Other than that, I'm on the latest kernel (6.9.x) and running a Btrfs filesystem.

EDIT: Additional clarification, restarting cosmic-greeter-daemon doesn't seem to be enough in my case. I need to restart greetd for the login screen to appear in TTY1.

mbrea-c commented 3 months ago

In my case this seems to be related to greetd.service hitting its restart limit, this is the output of systemctl status greetd.daemon:

× greetd.service
     Loaded: loaded (/etc/systemd/system/greetd.service; enabled; preset: enabled)
     Active: failed (Result: start-limit-hit) since Mon 2024-06-10 17:36:26 BST; 1min 35s ago
   Duration: 93ms
    Process: 1554 ExecStart=/nix/store/sizd6lal6b7mxjlbn5zh357wpb53kknl-greetd-0.10.0/bin/greetd --config /nix/store/hqn5mbny9vzw7cln60zyfp1gr41lmih6-greetd.toml (code=exited, status=0/SUCCESS)
   Main PID: 1554 (code=exited, status=0/SUCCESS)
         IP: 0B in, 0B out
        CPU: 11ms

Jun 10 17:36:26 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 5.
Jun 10 17:36:26 nixframe systemd[1]: greetd.service: Start request repeated too quickly.
Jun 10 17:36:26 nixframe systemd[1]: greetd.service: Failed with result 'start-limit-hit'.
Jun 10 17:36:26 nixframe systemd[1]: Failed to start greetd.service.

On the other hand, cosmic-greeter-daemon is started successfully

lilyinstarlight commented 3 months ago

Can you grab a journalctl -b0 with maybe more context on the failure?

mbrea-c commented 3 months ago

Here it is:

Jun 10 17:54:27 nixframe systemd[1]: Started greetd.service.
Jun 10 17:54:27 nixframe greetd[1299]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 10 17:54:27 nixframe greetd[1299]: gkr-pam: gnome-keyring-daemon started properly
Jun 10 17:54:27 nixframe greetd[1299]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 10 17:54:27 nixframe greetd[1296]: error: check_children: greeter exited without creating a session
Jun 10 17:54:27 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 10 17:54:27 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 1.
Jun 10 17:54:27 nixframe systemd[1]: Started greetd.service.
Jun 10 17:54:27 nixframe greetd[1379]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 10 17:54:27 nixframe greetd[1379]: gkr-pam: gnome-keyring-daemon started properly
Jun 10 17:54:27 nixframe greetd[1379]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 10 17:54:27 nixframe greetd[1378]: error: check_children: greeter exited without creating a session
Jun 10 17:54:27 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 10 17:54:28 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 2.
Jun 10 17:54:28 nixframe systemd[1]: Started greetd.service.
Jun 10 17:54:28 nixframe greetd[1430]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 10 17:54:28 nixframe greetd[1430]: gkr-pam: gnome-keyring-daemon started properly
Jun 10 17:54:28 nixframe greetd[1430]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 10 17:54:28 nixframe greetd[1429]: error: check_children: greeter exited without creating a session
Jun 10 17:54:28 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 10 17:54:28 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 3.
Jun 10 17:54:28 nixframe systemd[1]: Started greetd.service.
Jun 10 17:54:28 nixframe greetd[1484]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 10 17:54:28 nixframe greetd[1484]: gkr-pam: gnome-keyring-daemon started properly
Jun 10 17:54:28 nixframe greetd[1484]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 10 17:54:28 nixframe greetd[1483]: error: check_children: greeter exited without creating a session
Jun 10 17:54:28 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 10 17:54:29 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 4.
Jun 10 17:54:29 nixframe systemd[1]: Started greetd.service.
Jun 10 17:54:29 nixframe greetd[1525]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 10 17:54:29 nixframe greetd[1525]: gkr-pam: gnome-keyring-daemon started properly
Jun 10 17:54:29 nixframe greetd[1525]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 10 17:54:29 nixframe greetd[1524]: error: check_children: greeter exited without creating a session
Jun 10 17:54:29 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 10 17:54:29 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 5.
Jun 10 17:54:29 nixframe systemd[1]: greetd.service: Start request repeated too quickly.
Jun 10 17:54:29 nixframe systemd[1]: greetd.service: Failed with result 'start-limit-hit'.
Jun 10 17:54:29 nixframe systemd[1]: Failed to start greetd.service.

EDIT: The logs for cosmic-greeter-daemon.service show nothing unusual:

Jun 10 17:54:26 nixframe systemd[1]: Starting cosmic-greeter-daemon.service...
Jun 10 17:54:26 nixframe systemd[1]: Started cosmic-greeter-daemon.service.
mbrea-c commented 3 months ago

Small bit of additional info, I checked the logs again today and this time gkr-pam is throwing some error message:

Jun 11 18:21:20 nixframe systemd[1]: Started greetd.service.
Jun 11 18:21:20 nixframe greetd[1382]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 11 18:21:21 nixframe greetd[1382]: gkr-pam: gnome-keyring-daemon started properly
Jun 11 18:21:21 nixframe greetd[1382]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 11 18:21:21 nixframe greetd[1381]: error: check_children: greeter exited without creating a session
Jun 11 18:21:21 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 11 18:21:21 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 1.
Jun 11 18:21:21 nixframe systemd[1]: Started greetd.service.
Jun 11 18:21:21 nixframe greetd[1433]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 11 18:21:21 nixframe greetd[1433]: gkr-pam: couldn't unlock the login keyring.
Jun 11 18:21:21 nixframe greetd[1433]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 11 18:21:21 nixframe greetd[1432]: error: check_children: greeter exited without creating a session
Jun 11 18:21:21 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 11 18:21:21 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 2.
Jun 11 18:21:21 nixframe systemd[1]: Started greetd.service.
Jun 11 18:21:21 nixframe greetd[1475]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 11 18:21:21 nixframe greetd[1475]: gkr-pam: gnome-keyring-daemon started properly
Jun 11 18:21:22 nixframe greetd[1475]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 11 18:21:22 nixframe greetd[1474]: error: check_children: greeter exited without creating a session
Jun 11 18:21:22 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 11 18:21:22 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 3.
Jun 11 18:21:22 nixframe systemd[1]: Started greetd.service.
Jun 11 18:21:22 nixframe greetd[1509]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 11 18:21:22 nixframe greetd[1509]: gkr-pam: couldn't unlock the login keyring.
Jun 11 18:21:22 nixframe greetd[1509]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 11 18:21:22 nixframe greetd[1508]: error: check_children: greeter exited without creating a session
Jun 11 18:21:22 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 11 18:21:22 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 4.
Jun 11 18:21:22 nixframe systemd[1]: Started greetd.service.
Jun 11 18:21:22 nixframe greetd[1542]: pam_unix(greetd:session): session opened for user cosmic-greeter(uid=996) by (uid=0)
Jun 11 18:21:22 nixframe greetd[1542]: gkr-pam: gnome-keyring-daemon started properly
Jun 11 18:21:22 nixframe greetd[1542]: pam_unix(greetd:session): session closed for user cosmic-greeter
Jun 11 18:21:22 nixframe greetd[1541]: error: check_children: greeter exited without creating a session
Jun 11 18:21:22 nixframe systemd[1]: greetd.service: Deactivated successfully.
Jun 11 18:21:23 nixframe systemd[1]: greetd.service: Scheduled restart job, restart counter is at 5.
Jun 11 18:21:23 nixframe systemd[1]: greetd.service: Start request repeated too quickly.
Jun 11 18:21:23 nixframe systemd[1]: greetd.service: Failed with result 'start-limit-hit'.
Jun 11 18:21:23 nixframe systemd[1]: Failed to start greetd.service.
addy419 commented 3 months ago

Can you try adding

  environment.variables.XDG_RUNTIME_DIR = "/run/user/$UID";
  security.pam.services.cosmic-greeter.enableGnomeKeyring = true;

and see if that fixes the problem?

Edit: Switching back to 6.8 fixes my issues.

mbrea-c commented 3 months ago

Can you try adding

  environment.variables.XDG_RUNTIME_DIR = "/run/user/$UID";
  security.pam.services.cosmic-greeter.enableGnomeKeyring = true;

and see if that fixes the problem?

It doesn't unfortunately, same error as before.

Edit: Switching back to 6.8 fixes my issues.

But this did fix it, and 6.8 is working perfectly on my machine so for now I'm calling this a win :)

Thanks!

addy419 commented 3 months ago

@mbrea-c 6.9.4 fixes these issues for me. Can you check it again?

mbrea-c commented 3 months ago

@addy419 I can still reproduce it in 6.9.4, unfortunately

addy419 commented 3 months ago

@mbrea-c are you perhaps using an AMD CPU? Or an AMD GPU?

mbrea-c commented 3 months ago

@addy419 Yep, both AMD CPU and GPU

    Laptop: Framework 16
    System: Ryzen™ 9 7940HS
    Storage: WD_BLACK™ SN850X NVMe™- M.2 2280 - 2TB
    Memory: DDR5-5600 - 32GB (2 x 16GB)
    Expansion Bay Module: Graphics Module (AMD Radeon™ RX 7700S)

Do you think it's related?

addy419 commented 3 months ago

@mbrea-c Yes, kernel 6.9 introduced the new p-state drivers for amd cpus and all my amd systems have been super unstable since 6.9. 6.9.4 is definitely more stable since I don't see the issue for now, but I can't say for sure yet.

I'm using 7600X.

Edit: Faced the same issue again. Giving up for now, switched back to the latest lts.

Edit: Faced the same issue on 6.6 LTS. Idk anymore.

mikeslade commented 2 months ago

I have the same issue with the blank screen where cosmic greeter should display the login. I documented the error here: https://github.com/pop-os/cosmic-comp/issues/633. For me, it started a few weeks ago when they added the new KMS backend.

I am running the 6.8 kernel. AMD cpu. NVIDIA gpu.

michaelBelsanti commented 1 month ago

Is this issue still occurring? I had this issue until the recent update, but it's working fine now.

mikeslade commented 1 month ago

Everything is working for me now

Sent from Proton Mail for iOS

On Tue, Aug 6, 2024 at 11:14 AM, quasigod @.***(mailto:On Tue, Aug 6, 2024 at 11:14 AM, quasigod < wrote:

Is this issue still occurring? I had this issue until the recent update, but it's working fine now.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

lilyinstarlight commented 6 days ago

Closing since people have reported it working now. Feel free to reopen if you are still experiencing this