Skip to content

Crash after disabling output in niri (sometimes) #190

Description

@rare-pail7569

Using niri, if I start wpaperd with both of my monitors on, then disable one of them (in this case, DP-2), wpaperd crashes:

$ RUST_BACKTRACE=1 wpaperd --verbose
DEBUG [smithay_client_toolkit::registry] Bound new global [44] wl_output v4
DEBUG [smithay_client_toolkit::registry] Bound new global [52] wl_output v4
DEBUG [smithay_client_toolkit::registry] Bound new global [9] zxdg_output_manager_v1 v3
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Xbgr8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Argb8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Abgr8888
DEBUG [smithay_client_toolkit::shm] supported wl_shm format Xrgb8888
ERROR [wpaperd::surface] 
   0: Surface for display DP-2 is not available in wpaperd registry

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ BACKTRACE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   1: __libc_start_main<unknown>
      at <unknown source file>:<unknown line>

Run with COLORBT_SHOW_HIDDEN=1 environment variable to disable frame filtering.
Run with RUST_BACKTRACE=full to include source snippets.
fish: Job 1, 'RUST_BACKTRACE=1 wpaperd --verb…' terminated by signal SIGSEGV (Address boundary error)

I believe this only happens when attempting to transition to a new image. It does not happen consistently. Sometimes it segfaults directly without emitting an error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions