Skip to content

Cinnamon 6.6.7 freezes after screensaver/unlock with X11 fractional scaling, NVIDIA, dual monitor; muffin BadMatch at 6000x1440 #13820

Description

@thinkingocto

Distribution

Linux Mint 22.2 Cinnamon

Package version

Cinnamon 6.6.7

Graphics hardware in use

NVIDIA GeForce RTX 2070 SUPER, proprietary NVIDIA driver 580.159.03. Dual-monitor setup: - AOC U34G2G4R3 via DisplayPort, 3440x1440 - LG HDR 4K via HDMI, running at 2560x1440 @ 60 Hz Combined X11 screen size: 6000x1440. Session type: X11. Fractional scaling enabled.

Frequency

Quite often

Bug description

The system/session freezes hard after screensaver/unlock activity. I have to perform a hard reset. The journal does not show a kernel panic, NVIDIA Xid, GPU timeout, DRM hang, watchdog lockup, or coredump in the relevant time window.

The relevant sequence from the affected boot was:

2026-06-17 18:38:44 cinnamon-screensaver-pam-helper: pam_ecryptfs: seteuid error
2026-06-17 18:38:44 cinnamon-screensaver-pam-helper: gkr-pam: unlocked login keyring
2026-06-17 18:39:14 org.cinnamon.ScreenSaver: Error in sys.excepthook:
2026-06-17 18:39:14 org.cinnamon.ScreenSaver: Original exception was:
2026-06-17 18:41:11 dbus-daemon: Activating service name='org.gnome.Screenshot' requested by command "cinnamon --replace"
2026-06-17 18:41:56 last log entry of the affected boot
2026-06-17 18:46:57 next boot starts

There are also relevant entries in .xsession-errors:

muffin-Message: Enabling experimental feature 'scale-monitor-framebuffer'
muffin-Message: Enabling experimental feature 'x11-randr-fractional-scaling'

(cinnamon): muffin-WARNING **: Impossible to resize screen at size 6000x1440, error id 8: BadMatch (invalid parameter attributes)
(cinnamon): muffin-WARNING **: Impossible to resize screen at size 6000x1440, error id 8: BadMatch (invalid parameter attributes)

The issue appears related to Cinnamon/Muffin on X11 with fractional scaling enabled, NVIDIA proprietary driver, dual monitors, and screensaver/unlock or cinnamon --replace.

Steps to reproduce

I cannot reproduce it reliably every time, but the affected setup and observed path are:

  1. Use Linux Mint Cinnamon with Cinnamon 6.6.7.

  2. Use X11 session.

  3. Use NVIDIA proprietary driver 580.159.03 with an RTX 2070 SUPER.

  4. Connect two monitors:

    • 3440x1440 DisplayPort monitor
    • 2560x1440 HDMI monitor
  5. Enable fractional scaling.

  6. Use the system normally.

  7. Let the Cinnamon screensaver/lockscreen activate.

  8. Unlock the session.

  9. In the affected case, Cinnamon logged screensaver errors, then cinnamon --replace, then the system/session froze hard and required a hard reset.

Relevant commands used for diagnosis:

journalctl --list-boots

journalctl -b -2 --no-pager --since "2026-06-17 18:20" --until "2026-06-17 18:47" | grep -v "UFW BLOCK"

journalctl -b -2 -k --no-pager --since "2026-06-17 18:00" --until "2026-06-17 18:47" | grep -Ei "NVRM|Xid|nvidia|drm|gpu|i2c|ucsi|timeout|hang|hung|blocked|watchdog|soft lockup|hard lockup|rcu|BUG|Oops|panic|segfault"

coredumpctl list --since "2026-06-17 18:00" --until "2026-06-17 18:47"

cinnamon --version

inxi -Gxxx

Expected behavior

Unlocking the screen or replacing/restarting Cinnamon should not freeze the session or require a hard reset.

Cinnamon/Muffin should handle this X11 fractional scaling dual-monitor setup without BadMatch resize errors and without the screensaver/unlock path leading to a hard freeze.

Additional information

No coredumps were found for the affected time window.

The kernel log for the relevant time window showed no NVIDIA Xid, no NVRM error, no GPU timeout, no DRM hang, no watchdog lockup, and no kernel panic.

The previous boot ended abruptly at 2026-06-17 18:41:56. The next boot began at 2026-06-17 18:46:57.

System graphics output:

DESKTOP=X-Cinnamon
SESSION=x11
Cinnamon 6.6.7

Graphics:
Device-1: NVIDIA TU104 [GeForce RTX 2070 SUPER] vendor: ASUSTeK
driver: nvidia v: 580.159.03 arch: Turing pcie: speed: 8 GT/s lanes: 16
ports: active: none off: DP-2,HDMI-A-1 empty: DP-1,DP-3 bus-ID: 07:00.0
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X:
loaded: nvidia unloaded: fbdev,modesetting,nouveau,vesa
Screen-1: 0 s-res: 6000x1440
Monitor-1: DP-2 model: AOC U34G2G4R3 res: 3440x1440
Monitor-2: HDMI-A-1 mapped: HDMI-0 model: LG HDR 4K res: 2560x1440 hz: 60

Activity

  1. mc-123 commented on Jun 19, 2026

    @mc-123

    I am also experiencing the same bug in cinnamon 6.67 with a different hardware/display set up which also occurs when locking the screen. This occurs despite fractional scaling being disabled.

    Distribution
    Linux Mint 22.3 Cinnamon

    Package version
    Cinnamon 6.6.7

    Graphics hardware in use
    NVIDIA GeForce RTX 5090, NVIDIA driver 580.159.03. Dual-monitor setup: Samsung Odyssey G5 34” Curved Gaming Monitor each running at 3440x1440 @ 99.98 Hz and both connected via DisplayPort. Session type: X11. Fractional scaling disabled.

    Frequency
    Almost always (although time until an unrecoverable display crash varies)

    Bug description
    The system/session freezes sometime after the lock screen has been activated and both monitors turned off with cinnamon typically crashing several hours after lock screen and monitors are off. I can recover to a tty terminal session (Ctrl+Alt+F1) and restart the GUI session with "sudo systemctl restart lightdm" but cinnamon cannot be restored otherwise.

    journal_ctl_log.txt

    crash_report.txt

  2. lupin-de-mid commented on Aug 22, 2026

    @lupin-de-mid

    I encountered what appears to be the same bug, with additional evidence that the lock-screen process retained the X11 input grab after monitor geometry changed during authentication.

    Environment

    • Ubuntu 26.04-based system

    • Cinnamon 6.4.13 (6.4.13-2)

    • cinnamon-screensaver 6.4.1 (6.4.1-1)

    • X11 / Xorg 1.21.1.22 under LightDM

    • NVIDIA GeForce RTX 3090, proprietary driver 595.84

    • Two DisplayPort monitors: 3840x2160 and 1920x1200

    • Experimental Muffin features enabled: scale-monitor-framebuffer, x11-randr-fractional-scaling

    • Session uptime before failure: approximately 5 days 16 hours

    Symptoms

    After entering the password to unlock, the desktop became visible but the mouse pointer was invisible and Alt+Tab had no effect. Xorg and Cinnamon remained alive. There was no NVIDIA Xid, GPU reset, OOM, Xorg crash, Cinnamon crash, or coredump.

    The screensaver had started at 12:15. At 14:39:57 PAM reported an authentication failure. Two seconds later cinnamon-screensaver reported that its screen and monitor rectangles did not add up. The topology then changed through two monitors, one 960x600 monitor, and back to the two-monitor fractional layout. PAM subsequently reported conversation failed.

    After the failure:

    • cinnamon-screensaver-command --query did not respond within a three-second timeout.
    • cinnamon-screensaver, cs-backup-locker, and a stale PAM helper remained alive.
    • cs-backup-locker appeared to retain the input grab, explaining the missing pointer and blocked Cinnamon keybindings.
    • Killing only those three screensaver processes from an authenticated TTY immediately restored the pointer and Alt+Tab without restarting Cinnamon, Xorg, or applications.

    The correlated journal excerpt and a sanitized diagnostic summary are attached. The geometry/PAM sequence makes X11 fractional-scaling monitor reconfiguration during unlock the most likely trigger in this occurrence.

    incident-journal-sanitized.txt

    system-and-config-sanitized.txt

  3. good-vi commented on Oct 8, 2026

    @good-vi

    The same

  4. Devepoper commented on Oct 8, 2026

    @Devepoper

    I hit what looks like the same crash on Cinnamon 6.6.9 / muffin 6.6.3 / cjs 115.1 (Mint 22.3, AMD, X11 fractional scaling, 3 monitors) and got two coredumps for it. Both crash while the panel re-lays out after a monitor change, right after the Impossible to resize screen at size ... BadMatch warnings:

    #1  js::ToNumberSlow
    #2  js::ToInt32Slow
    #7  gjs_value_to_g_argument (arg_type=GJS_ARGUMENT_FIELD, arg_name="x")
    #8  BoxedInstance::field_setter_impl      <- Meta.Rectangle.x
    #9  BoxedBase::field_setter
    

    JS site: js/ui/panel.js _shouldClipPanel(), test_rect.x = this.actor.x. In both dumps the value read from the actor's x property has raw bits 0xffff300000000000: a NaN with a payload. cjs 115 stores floats from C with setNumber() without JS::CanonicalizeNaN(), so SpiderMonkey misreads the NaN as a tagged pointer and the next use of it segfaults. GJS fixed this in 1.80 (commit 4aef713129, GNOME/gjs#591); Mint's 128/140 cjs branches have it, 115 does not.

    Backport PR for cjs 115: linuxmint/cjs#138. With it, the actor's NaN position becomes a plain JS NaN and ToInt32 yields 0 instead of a crash. Why the panel actor's position goes NaN during the layout change (fractional scaling + a monitor briefly disappearing on DPMS off/on in my case) is still open, but it stops being fatal.

    Standalone reproducer without Cinnamon, crashes on cjs 115.1:

    const GLib = imports.gi.GLib;
    let [v] = GLib.ascii_strtod("-nan(0xf300000000000)");
    print(typeof v);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions