Skip to content

SIGSEGV in HyprlandToplevel::updateFromObject at startup when a bar widget binds Hyprland.toplevels (0.3.1) #1145

Description

@elberacasa

What caused the crash

Quickshell 0.3.1 segfaults during startup in HyprlandToplevel::updateFromObject, while a third-party bar widget creates a QML binding on Hyprland.toplevels.

Because the crash handler re-execs, a single startup crash looks like a burst: five processes died in eight seconds, each roughly 1.5 s after launch, until one instance got through.

What the widget does: it is a bar widget (a custom QML module in the bar's layout) that, as it loads, evaluates a binding over every toplevel and reads address, title, workspace.name and lastIpcObject for each, plus Hyprland.activeToplevel.

Reproduction (on this machine, every time):

  1. Run a shell that hosts bar widgets (here: omarchy-shell, Quickshell-based).
  2. Add a bar widget whose QML binds Hyprland.toplevels as it loads.
  3. Restart the shell repeatedly with ~9 windows open.

Controlled experiment, four to five shell restarts per row:

Setup Restarts Crashes
Shell without the widget (plugin disabled, widget removed from the bar) 4 0
Shell with the plugin enabled but the widget not on the bar 4 0
Shell with the widget on the bar 4 5
Shell with the widget on the bar, bindings deferred 3 s after startup 5 0

What the dying instance logged last, in every case:

DEBUG quickshell.hyprland.ipc: parsing monitors response
DEBUG quickshell.hyprland.ipc: Workspace "2" requested before creation, performing early init with id 2
DEBUG quickshell.hyprland.ipc: Parsing workspaces response
DEBUG quickshell.hyprland.ipc: Parsing j/clients response

Reading of the evidence (inference, not proof): HyprlandToplevel::updateFromObject wraps its updates in Qt::beginPropertyUpdateGroup() / Qt::endPropertyUpdateGroup(), and j/clients parsing creates HyprlandToplevel objects as it goes (connection.cpp, the j/clients callback). A QML binding created against those toplevels while the parse is in flight appears to leave an observer that the group's final QPropertyObserverPointer::notify then walks into. Deferring all toplevel bindings past startup avoided it in five consecutive restarts.

I could not reduce this to a standalone config. Two attempts, both running against the same live session with 9 windows and neither crashing once:

  1. A bare ShellRoot that binds Hyprland.toplevels (reading each toplevel's workspace and lastIpcObject) after a delay, swept across 0/30/60/120/250/500/900 ms, three runs each — 21 runs, 0 crashes. At every non-zero delay the parse had already finished (windows read: 9).
  2. A ShellRoot with a layer-shell PanelWindow that calls Hyprland.refreshToplevels() every 3 ms while creating, reading and destroying a toplevel-binding object every 5 ms — 6 runs, ~999 objects built per run, 0 crashes.

So the trigger seems to need the real startup sequence (plugins loading into a bar during the shell's own first enumeration), not just concurrent parsing. Both attempts are attached below in case they are useful starting points.

Report file

Trimmed to the last 30 log lines before the crash, with paths, host name and third-party plugin names anonymized, per the warning in the issue template.

report.txt (trimmed, anonymized)
===== Version Information =====
Quickshell: 0.3.1 (revision , distributed by Arch Linux)
Qt: 6.11.2 (built against 6.11.2)

===== Build Information =====
Build Type: RelWithDebInfo
Compiler: GNU (16.2.1)
Compile Flags: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection         -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/quickshell/src=/usr/src/debug/quickshell -flto=auto
Configuration:
  Distributor: Arch Linux
  Disable precompild headers (dev): OFF
  Build tests (dev): OFF
  ASAN (dev): OFF
  Keep Frame Pointers (dev): OFF
  Use jemalloc: ON
  Crash Handling: ON
  Unix Sockets: ON
  Wayland: ON
    Wlroots Layer-Shell: ON
    Session Lock: ON
    Foreign Toplevel Management: ON
    Hyprland: ON
      Hyprland IPC: ON
      Hyprland Global Shortcuts: ON
      Hyprland Focus Grabbing: ON
      Hyprland Surface Extensions: ON
    Screencopy: ON
      Image Copy Capture: ON
      Wlroots Screencopy: ON
      Hyprland Toplevel Export: ON
  X11: ON
  I3/Sway: ON
    I3/Sway IPC: ON
  System Tray: ON
  PipeWire: ON
  Mpris: ON
  Pam: ON
  Polkit: ON
  Greetd: ON
  UPower: ON
  Notifications: ON
  Bluetooth: ON
  Network: ON

===== System Information =====
GPU /dev/dri/renderD128
  Driver: nvidia-drm 0.0.0 (NVIDIA DRM driver)
  Model: 10de:2208
  Address: PCI 01:00.0

/etc/os-release:
NAME="Omarchy"
PRETTY_NAME="Omarchy"
ID=omarchy
ID_LIKE=arch
BUILD_ID="4.0.3"
VERSION_ID="4.0.3"
ANSI_COLOR="38;2;158;206;106"
HOME_URL="https://omarchy.org/"
DOCUMENTATION_URL="https://learn.omacom.io/2/the-omarchy-manual"
SUPPORT_URL="https://discord.gg/tXFUdasqhY"
BUG_REPORT_URL="https://github.com/basecamp/omarchy/issues"
LOGO=omarchy

/etc/lsb-release:FAILED TO OPEN

===== Environment (trimmed) =====
QS_NO_RELOAD_POPUP=1
QS_DISABLE_FILE_WATCHER=1
QT_QPA_PLATFORMTHEME=gtk3
XDG_CURRENT_DESKTOP=Hyprland
QT_QPA_PLATFORM=wayland;xcb
QT_IM_MODULE=fcitx
QT_QUICK_CONTROLS_STYLE=Fusion

===== Instance Information =====
Signal: Segmentation fault (11)
Crashed process ID: 2901137
Run ID: g36q1tmgflt
Shell ID: c0240dfe8c8e8a421e1f8db23a03fc60
Config Path: /usr/share/omarchy/shell/shell.qml

===== Stacktrace =====
#0  0x00007fc6f7c3e6ef at /usr/bin/../lib/libc.so.6
#1  0x00007fc6f85f9f37 in Qt::endPropertyUpdateGroup() at /usr/bin/../lib/libQt6Core.so.6
#2  0x000055d2e43c1e85 at /usr/bin/quickshell
#3  0x000055d2e43bad25 at /usr/bin/quickshell
#4  0x00007fc6f85eeff2 at /usr/bin/../lib/libQt6Core.so.6
#5  0x00007fc6f85ef235 at /usr/bin/../lib/libQt6Core.so.6
#6  0x00007fc6f8cc820f in QAbstractSocketPrivate::canReadNotification() at /usr/bin/../lib/libQt6Network.so.6
#7  0x00007fc6f8cd4691 at /usr/bin/../lib/libQt6Network.so.6
#8  0x00007fc6f85822b7 in QCoreApplication::notifyInternal2(QObject*, QEvent*) at /usr/bin/../lib/libQt6Core.so.6
#9  0x00007fc6f889a1cf at /usr/bin/../lib/libQt6Core.so.6
#10 0x00007fc6faedcc75 at /usr/bin/../lib/libglib-2.0.so.0
#11 0x00007fc6faedeed6 at /usr/bin/../lib/libglib-2.0.so.0
#12 0x00007fc6faedf054 in g_main_context_iteration at /usr/bin/../lib/libglib-2.0.so.0
#13 0x00007fc6f8896f31 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) at /usr/bin/../lib/libQt6Core.so.6
#14 0x00007fc6f858f663 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) at /usr/bin/../lib/libQt6Core.so.6
#15 0x00007fc6f8586859 in QCoreApplication::exec() at /usr/bin/../lib/libQt6Core.so.6
#16 0x000055d2e429c5f1 at /usr/bin/quickshell
#17 0x000055d2e428c01f at /usr/bin/quickshell
#18 0x000055d2e4291cef at /usr/bin/quickshell
#19 0x000055d2e427a490 at /usr/bin/quickshell
#20 0x00007fc6f7c27780 at /usr/bin/../lib/libc.so.6
#21 0x00007fc6f7c278b8 in __libc_start_main at /usr/bin/../lib/libc.so.6
#22 0x000055d2e427d084 at /usr/bin/quickshell

===== Log Tail =====
(trimmed to the last 30 lines before the crash; paths and names anonymized)
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:PlaybackStatus to qs::service::mpris::MprisPlaybackState::Stopped 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Position to 0 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Rate to 1 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Volume to 1 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Received GetAll property set for org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2:CanQuit to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2:CanRaise to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Ignoring untracked property update "HasTrackList" for "org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2"
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2:Identity to "cursor" 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2:SupportedMimeTypes to QList() 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2:SupportedUriSchemes to QList() 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Received GetAll property set for org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:CanControl to true 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:CanGoNext to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:CanGoPrevious to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:CanPause to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:CanPlay to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:CanSeek to false 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:MaximumRate to 1 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Metadata to QMap(("mpris:length", QVariant(qlonglong, 0))) 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:MinimumRate to 1 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updating property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Position
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:PlaybackStatus to qs::service::mpris::MprisPlaybackState::Stopped 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Position to 0 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Rate to 1 
2026-09-15 18:47:18.000 DEBUG quickshell.dbus.properties: Updated property org.mpris.MediaPlayer2.chromium.instanceN/org/mpris/MediaPlayer2/org.mpris.MediaPlayer2.Player:Volume to 1 
2026-09-15 18:47:18.000 DEBUG quickshell.hyprland.ipc: parsing monitors response
2026-09-15 18:47:18.000 DEBUG quickshell.hyprland.ipc: Workspace "2" requested before creation, performing early init with id 2
2026-09-15 18:47:18.000 DEBUG quickshell.hyprland.ipc: Parsing workspaces response
2026-09-15 18:47:18.000 DEBUG quickshell.hyprland.ipc: Parsing j/clients response

Configuration

The widget is public. The version that crashes is bar/AgentPets.qml at commit 1849278; the same file after the workaround is at f1ad8fb. The binding itself lives in dock/AgentSessions.qml:

readonly property var list: agents.active
  ? Desktops.sessions(Model.windowList(Hyprland.toplevels.values || []).filter(function(window) {
    return window.workspaceName !== "special:omahub-stash"
  }), agents.terminalInfo) : []

readonly property string focusedAddress: Hyprland.activeToplevel && Hyprland.activeToplevel.address
  ? "0x" + String(Hyprland.activeToplevel.address).replace(/^0x/, "") : agents.focusedFromEvent

Model.windowList reads address, pid, title, workspace.name and lastIpcObject from each toplevel.

Failed standalone reproduction attempt 1
import QtQuick
import Quickshell
import Quickshell.Hyprland

// Minimal reproduction attempt for a crash in Quickshell 0.3.1 on Hyprland:
//
//   HyprlandToplevel::updateFromObject -> Qt::endPropertyUpdateGroup -> QPropertyObserverPointer::notify
//
// The shape it comes from: something that loads a moment after the shell starts (a bar widget, a plugin)
// creates a binding on Hyprland.toplevels while Quickshell is still parsing Hyprland's `j/clients` answer
// and creating HyprlandToplevel objects for it.
//
// Run with: REPRO_DELAY=<ms> quickshell -p <this directory>
ShellRoot {
  id: root

  readonly property int delay: Number(Quickshell.env("REPRO_DELAY")) || 0

  // Asking for workspaces and monitors at startup is what a bar does, and it starts Quickshell's
  // Hyprland enumeration, so a clients parse is in flight while the loader below builds its binding.
  readonly property int workspaceCount: (Hyprland.workspaces.values || []).length
  readonly property int monitorCount: (Hyprland.monitors.values || []).length

  Component.onCompleted: {
    console.log("start: workspaces", root.workspaceCount, "monitors", root.monitorCount)
    Hyprland.refreshToplevels()
    if (root.delay === 0) late.active = true
    else lateTimer.start()
  }

  Timer {
    id: lateTimer
    interval: root.delay
    onTriggered: {
      late.active = true
      Hyprland.refreshToplevels()
    }
  }

  // Stands in for the bar widget: it reads every window, and each window's workspace and last IPC object,
  // which is what makes Quickshell create the attached objects while it parses.
  Loader {
    id: late
    active: false

    sourceComponent: Component {
      QtObject {
        readonly property var windows: (Hyprland.toplevels.values || []).map(function(toplevel) {
          return {
            address: toplevel.address,
            title: toplevel.title,
            workspace: toplevel.workspace ? toplevel.workspace.name : "",
            size: toplevel.lastIpcObject ? toplevel.lastIpcObject.size : null
          }
        })
        readonly property string focused: Hyprland.activeToplevel ? String(Hyprland.activeToplevel.address) : ""

        Component.onCompleted: console.log("windows read:", windows.length, "focused:", focused !== "")
      }
    }
  }

  // Nothing to show: the run ends on its own so it can be repeated.
  Timer {
    interval: 4000
    running: true
    onTriggered: Qt.quit()
  }
}
Failed standalone reproduction attempt 2
import QtQuick
import Quickshell
import Quickshell.Hyprland
import Quickshell.Wayland

// Second reproduction attempt for the Quickshell 0.3.1 crash
//
//   HyprlandToplevel::updateFromObject -> Qt::endPropertyUpdateGroup -> QPropertyObserverPointer::notify
//
// The first attempt failed because a single binding built after startup always found the clients parse
// already finished. This one keeps clients responses in flight while bindings on Hyprland.toplevels are
// built and torn down, so one of them lands in the middle of a parse.
//
// Run with: quickshell -p <this directory>
ShellRoot {
  id: root

  property int built: 0

  // A bar-like layer surface, since the crash was seen in a bar widget rather than a bare shell.
  PanelWindow {
    anchors { top: true; left: true; right: true }
    implicitHeight: 1
    color: "transparent"
    WlrLayershell.layer: WlrLayer.Background
  }

  Component {
    id: reader

    QtObject {
      readonly property var windows: (Hyprland.toplevels.values || []).map(function(toplevel) {
        return {
          address: toplevel.address,
          title: toplevel.title,
          workspace: toplevel.workspace ? toplevel.workspace.name : "",
          size: toplevel.lastIpcObject ? toplevel.lastIpcObject.size : null
        }
      })
      readonly property string focused: Hyprland.activeToplevel ? String(Hyprland.activeToplevel.address) : ""
    }
  }

  // Keep a clients response in flight at all times.
  Timer {
    interval: 3
    repeat: true
    running: true
    onTriggered: Hyprland.refreshToplevels()
  }

  // Build a binding on the toplevels, read it, and throw it away, over and over.
  Timer {
    interval: 5
    repeat: true
    running: true
    onTriggered: {
      var object = reader.createObject(root)
      if (!object) return
      var count = object.windows.length + (object.focused !== "" ? 1 : 0)
      root.built += count > 0 ? 1 : 0
      object.destroy()
    }
  }

  Timer {
    interval: 5000
    running: true
    onTriggered: {
      console.log("readers built:", root.built)
      Qt.quit()
    }
  }
}

Backtrace

gdb with debuginfod, bt -full (one window title redacted):

bt -full
warning: Can't open file /memfd:JSGCHeap:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /memfd:JSVMStack:QtQml (deleted) during file-backed mapping note processing

warning: Can't open file /dev/shm/0a649ef4-15b7-4dfc-b27c-7ff95fe095f5 (deleted) during file-backed mapping note processing
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `/usr/bin/quickshell -n -p /usr/share/omarchy/shell'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007fc6f7c9a243 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:89
No locals.
#2  0x00007fc6f7c3e5d0 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x000055d2e42e3389 in qs::crash::(anonymous namespace)::signalHandler (sig=11) at /usr/src/debug/quickshell/quickshell/src/crash/handler.cpp:93
        set = {__val = {18446744067267100671, 0 <repeats 15 times>}}
        coredumpPid = 0
        exe = {_M_elems = "\204\320'\344\322U\000\000\204\340\v\000\000\000\000\000/usr/bin/quickshell", '\000' <repeats 4060 times>}
        arg = {_M_elems = {0x0, 0x0}}
        env = {_M_elems = {0x7fc6f7c3e6ef "", 0x7fc6f85f9f37 <Qt::endPropertyUpdateGroup()+695> "\377\321H\213\205\220\367\377\377H\203\370\avZH\213\225\230\367\377\377H\203\340\370H\211P\bH\213\215\230\367\377\377H\205\311\017\204@\377\377\377H\213\021\203\342\aH\t\302H\211\021\351/\377\377\377f.\017\037\204", 0x55d2e43c1e85 <operator()(bool, QByteArray const&) const+1829> "", 0x55d2e43bad25 <QtPrivate::QCallableObject<qs::hyprland::ipc::HyprlandIpc::makeRequest(const QByteArray&, const std::function<void(bool, QByteArray)>&)::<lambda()>::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)+133> "0H\213E\320H\205\300t\032\360\203(\001u\024H\213}к\020", 0x7fc6f85eeff2 <doActivate<false>(QObject*, int, void**)+1474> "\bH\211\337\350e\367\356\377H\213E\250H\205\300\017\2048\376\377\377H\213@\bH\213U\240H\213@`H\211P\030\351#\376\377\377\017\037", 0x7fc6f85ef235 <doActivate<false>(QObject*, int, void**)+2053> "8\351\300\375\377\377\017\037D", 0x7fc6f8cc820f <QAbstractSocketPrivate::canReadNotification()+415> "", 0x7fc6f8cd4691 <QReadNotifier::event(QEvent*)+97> "\020\353\326\220ff.\017\037\204", 0x7fc6f85822b7 <QCoreApplication::notifyInternal2(QObject*, QEvent*)+343> "\320\351A\377\377\377\377\025\025\003P", 0x7fc6f889a1cf <socketNotifierSourceDispatch(GSource*, GSourceFunc, gpointer)+143> "\377H\213CxH\203\300\001H\211CxH;Cp|\314H\213]\360L\211\347\350\022E\317\377H\213E\350dH+\004%(", 0x7fc6faedcc75 <g_main_dispatch+421> "\324H\215\025t\025\r", 0x7fc6faedeed6 <g_main_context_iterate_unlocked+998> "\377\351\345\375\377\377\017\037@", 0x7fc6faedf054 <g_main_context_iteration+52> "\377H\211\337A\211\304g\350\257\317\002", 0x7fc6f8896f31 <QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+113> "", 0x7fc6f858f663 <QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+419> "`A\213\004$\205\300t\334L\211\357D\213\263\200", 0x7fc6f8586859 <QCoreApplication::exec()+185> "", 0x55d2e429c5f1 <qs::launch::launch(qs::launch::LaunchArgs const&, char**, QCoreApplication*)+6849> "", 0x55d2e428c01f <qs::launch::(anonymous namespace)::launchFromCommand(qs::launch::CommandState&, QCoreApplication*)+335> "", 0x55d2e4291cef <qs::launch::runCommand(int, char**, QCoreApplication*)+11471> "\377A\211\304\351R\370\377\377H\2155\353\2014", 0x55d2e427a490 <main(int, char**)+160> "", 0x7fc6f7c27780 <__libc_start_call_main+128> "\377\211\307\350\370\230\001", 0x7fc6f7c278b8 <__libc_start_main_impl+136> "\377L\2135\310\026\037", 0x55d2e427d084 <_start+36> "", 0x0 <repeats 1001 times>, 0x7fc6c9593f80 "\003", 0x0, 0x0, 0x0, 0x0, 0x40f6ffff <error: Cannot access memory at address 0x40f6ffff>, 0x7fff7fffffff <error: Cannot access memory at address 0x7fff7fffffff>, 0xfe00000000000000 <error: Cannot access memory at address 0xfe00000000000000>, 0x650075ffffffff <error: Cannot access memory at address 0x650075ffffffff>, 0x7fc6ea3c3f00 "\210\316\323\371\306\177", 0xffffffffffffffff "", 0x0 <repeats 14 times>, 0xbff0000000000000 <error: Cannot access memory at address 0xbff0000000000000>, 0xbff0000000000000 <error: Cannot access memory at address 0xbff0000000000000>, 0x67006500720000 <error: Cannot access memory at address 0x67006500720000>, 0x20006500740061 <error: Cannot access memory at address 0x20006500740061>, 0x700061006e0073 <error: Cannot access memory at address 0x700061006e0073>, 0x74006f00680073 <error: Cannot access memory at address 0x74006f00680073>, 0x200022002e0073 <error: Cannot access memory at address 0x200022002e0073>, 0x7d <error: Cannot access memory at address 0x7d>, 0x0, 0x7fc6fa541838 "\300\377\361\371\306\177", 0x7fc6c9450500 " \024T\372\306\177", 0x7fc6c94160e0 "X\353U\372\306\177", 0x0, 0x0, 0x0, 0x30 <error: Cannot access memory at address 0x30>, 0x0, 0x0, 0x7fc6ea3c4040 "", 0x0, 0x7fc6f3a13e60 "\200\226:\352\306\177", 0x7fc6c8dde360 "\001", 0x7fc6c9450528 "", 0x7fc6c95ff000 "\003", 0x0, 0x0, 0x0, 0x0, 0x40f6ffff <error: Cannot access memory at address 0x40f6ffff>, 0x7fff7fffffff <error: Cannot access memory at address 0x7fff7fffffff>, 0xfe00000000000000 <error: Cannot access memory at address 0xfe00000000000000>, 0x690077ffffffff <error: Cannot access memory at address 0x690077ffffffff>, 0x7fc6ea3c3f00 "\210\316\323\371\306\177", 0xffffffffffffffff "", 0x0 <repeats 14 times>, 0xbff0000000000000 <error: Cannot access memory at address 0xbff0000000000000>, 0xbff0000000000000 <error: Cannot access memory at address 0xbff0000000000000>, 0x76006500640000 <error: Cannot access memory at address 0x76006500640000>, 0x2d006900750020 <error: Cannot access memory at address 0x2d006900750020>, 0x76006500720070 <error: Cannot access memory at address 0x76006500720070>, 0x29007700650069 <error: Cannot access memory at address 0x29007700650069>, 0x2c0022002e <error: Cannot access memory at address 0x2c0022002e>, 0x0, 0x0, 0x7fc6fa541838 "\300\377\361\371\306\177", 0x7fc6c9450a40 " \024T\372\306\177", 0x7fc6c9329820 "X\353U\372\306\177", 0x0, 0x0, 0x0, 0x30 <error: Cannot access memory at address 0x30>, 0x0, 0x0, 0x7fc6ea3c4040 "", 0x0, 0x7fc6f3a13e60 "\200\226:\352\306\177", 0x7fc6c8dde000 "\001", 0x7fc6c9450a68 "", 0x7fc6c95ff060 "\003", 0x0, 0x0, 0x0, 0x0, 0x40f6ffff <error: Cannot access memory at address 0x40f6ffff>, 0x7fff7fffffff <error: Cannot access memory at address 0x7fff7fffffff>, 0xfe00000000000000 <error: Cannot access memory at address 0xfe00000000000000>, 0x20002cffffffff <error: Cannot access memory at address 0x20002cffffffff>, 0x7fc6ea3c3f00 "\210\316\323\371\306\177", 0xffffffffffffffff "", 0x0 <repeats 14 times>, 0xbff0000000000000 <error: Cannot access memory at address 0xbff0000000000000>, 0xbff0000000000000 <error: Cannot access memory at address 0xbff0000000000000>, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7fc6de094980 "\200\n\340\335\306\177", 0x7fc6de0948c0 "\200\n\340\335\306\177", 0x7fc6de094780 "\200\n\340\335\306\177", 0x7fc6de094680 "\200\n\340\335\306\177", 0x7fc6de093f80 "\200\n\340\335\306\177", 0x7fc6de093e00 "\200\n\340\335\306\177", 0x7fc6de093d40 "\200\n\340\335\306\177", 0x7fc6de093ac0 "\200\n\340\335\306\177", 0x7fc6de093a00 "\200\n\340\335\306\177", 0x7fc6de093640 "\200\n\340\335\306\177", 0x7fc6de0933c0 "\200\n\340\335\306\177", 0x7fc6de092d00 "\200\n\340\335\306\177", 0x7fc6de092ac0 "\200\n\340\335\306\177", 0x7fc6de092a40 "\200\n\340\335\306\177", 0x7fc6de092980 "\200\n\340\335\306\177", 0x7fc6de092900 "\200\n\340\335\306\177", 0x7fc6de092880 "\200\n\340\335\306\177", 0x7fc6de092320 "\200\n\340\335\306\177", 0x7fc6de091a60 "\200\n\340\335\306\177", 0x7fc6de091820 "\200\n\340\335\306\177", 0x7fc6de0917a0 "\200\n\340\335\306\177", 0x7fc6de0916e0 "\200\n\340\335\306\177", 0x7fc6de091660 "\200\n\340\335\306\177", 0x7fc6de0915e0 "\200\n\340\335\306\177", 0x7fc6de0913e0 "\200\n\340\335\306\177", 0x7fc6de091320 "\200\n\340\335\306\177", 0x7fc6de0911e0 "\200\n\340\335\306\177", 0x7fc6de090e00 "\200\n\340\335\306\177", 0x7fc6de090d80 "\200\n\340\335\306\177", 0x7fc6de090d00 "\200\n\340\335\306\177", 0x7fc6de090c80 "\200\n\340\335\306\177", 0x7fc6de090c00 "\200\n\340\335\306\177", 0x7fc6de0909c0 "\200\n\340\335\306\177", 0x7fc6de090780 "\200\n\340\335\306\177", 0x7fc6de090700 "\200\n\340\335\306\177", 0x7fc6de0905c0 "\200\n\340\335\306\177", 0x7fc6de090540 "\200\n\340\335\306\177", 0x7fc6de090400 "\200\n\340\335\306\177", 0x7fc6de08fd80 "\200\n\340\335\306\177", 0x7fc6de08fa60 "\200\n\340\335\306\177", 0x7fc6de08ec60 "\200\n\340\335\306\177", 0x7fc6de08ebe0 "\200\n\340\335\306\177", 0x7fc6de08ea80 "\200\n\340\335\306\177", 0x7fc6de08e960 "\200\n\340\335\306\177", 0x7fc6de08e8e0 "\200\n\340\335\306\177", 0x7fc6de08e860 "\200\n\340\335\306\177", 0x7fc6de08e7e0 "\200\n\340\335\306\177", 0x7fc6de08e720 "\200\n\340\335\306\177", 0x55d2e47444b8 <vtable for QQmlPrivate::QQmlElement<Process>+16> "\220\3353\344\322U"...}}
        envi = 0
        infoFdStr = {_M_elems = '\000' <repeats 47 times>}
        corePidStr = {_M_elems = '\000' <repeats 47 times>}
        sigStr = {_M_elems = '\000' <repeats 47 times>}
        populateEnv = <optimized out>
        pid = <optimized out>
#4  <signal handler called>
No locals.
#5  0x00007fc6f85f9f37 in QPropertyObserverPointer::notify (this=<synthetic pointer>, propertyDataPtr=0x7fc6c940fba0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qproperty_p.h:944
        handlerToCall = <optimized out>
        protector = {m_placeHolder = {next = {d = 2}, prev = {d = 0x7fc6c5c40280}, {binding = 0x0, changeHandler = 0x0, aliasData = 0x0}}}
        next = <optimized out>
        observer = 0x7fc6c5c40280
#6  QPropertyDelayedNotifications::notify (this=<optimized out>, index=2) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qproperty.cpp:167
        delayed = 0x7fc6c6bd5048
        observer = <optimized out>
#7  Qt::endPropertyUpdateGroup () at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qproperty.cpp:292
        i = 2
        status = <optimized out>
        groupUpdateData = <optimized out>
        data = 0x7fc6c6bd5000
        bindingObservers = {<QVLABase<QPropertyBindingPrivatePtr>> = {<QVLABaseBase> = {a = 256, s = 1, ptr = 0x7fffa4464b48}, <No data fields>}, <QVLAStorage<8, 8, 256>> = {array = " \024\267\310\306\177\000\000", '\376' <repeats 2040 times>}, <No data fields>}
        start = <optimized out>
#8  0x000055d2e43c1e86 in qs::hyprland::ipc::HyprlandToplevel::updateFromObject (this=0x7fc6c940fb40, object=...) at /usr/src/debug/quickshell/quickshell/src/wayland/hyprland/ipc/hyprland_toplevel.cpp:86
        addressStr = {d = {d = 0x7fc6c50a9630, ptr = 0x7fc6c50a9640 u"0x55d3ba451730", size = 14}}
        title = {d = {d = 0x7fc6c5c449c0, ptr = 0x7fc6c5c449d0 u"<window title redacted>", size = 19}}
        ok = true
        address = <optimized out>
        workspaceMap = {d = {d = {ptr = 0x7fc6c5c44a00}}}
        workspaceName = {d = {d = 0x7fc6c50cac60, ptr = 0x7fc6c50cac70 u"8", size = 1}}
        workspace = <optimized out>
#9  operator() (__closure=0x7fc6ea18a3d8, success=<optimized out>, resp=...) at /usr/src/debug/quickshell/quickshell/src/wayland/hyprland/ipc/connection.cpp:736
        ok = true
        exists = <optimized out>
        workspace = <optimized out>
        object = {d = {d = {ptr = 0x7fc6c5d63140}}}
        address = <optimized out>
        toplevelsIter = <optimized out>
        toplevel = 0x7fc6c940fb40
        entry = {<QJsonValueConstRef> = {{a = 0x7fffa4465440, o = 0x7fffa4465440, d = 0x7fffa4465440}, is_object = 0, index = 6}, <No data fields>}
        __for_range = @0x7fffa4465440: {a = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, QCborContainerPrivate>> = {d = {ptr = 0x7fc6ea18a440}}, <No data fields>}}
        __for_begin = <optimized out>
        __for_end = <optimized out>
        json = {a = {<QSharedDataPointerBase<QExplicitlySharedDataPointer, QCborContainerPrivate>> = {d = {ptr = 0x7fc6ea18a440}}, <No data fields>}}
        mList = @0x7fc6e1be3e68: {<QListSpecialMethods<qs::hyprland::ipc::HyprlandToplevel*>> = {<QListSpecialMethodsBase<qs::hyprland::ipc::HyprlandToplevel*>> = {<No data fields>}, <No data fields>}, d = {d = 0x7fc6c957db00, ptr = 0x7fc6c957db10, size = 13}}
        this = 0x7fc6e1be3d80
#10 0x000055d2e43bad26 in std::function<void(bool, QByteArray)>::operator() (this=0x7fc6ea18a3d8, __args#0=<optimized out>, __args#1=...) at /usr/include/c++/16/bits/std_function.h:581
No locals.
#11 operator() (__closure=0x7fc6ea18a3d0) at /usr/src/debug/quickshell/quickshell/src/wayland/hyprland/ipc/connection.cpp:180
        response = {d = {d = 0x0, ptr = 0x0, size = 0}, static _empty = 0 '\000'}
        callback = {<std::_Maybe_unary_or_binary_function<void, bool, QByteArray>> = {<std::binary_function<bool, QByteArray, void>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x7fc6e1be3d80, _M_const_object = 0x7fc6e1be3d80, _M_function_pointer = 0x7fc6e1be3d80, _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0x7fc6e1be3d80}, _M_pod_data = "\200=\276\341\306\177\000\000\000\000\000\000\000\000\000"}, _M_manager = 0x55d2e43b8e40 <std::_Function_handler<void(bool, QByteArray), qs::hyprland::ipc::HyprlandIpc::refreshToplevels()::<lambda(bool, const QByteArray&)> >::_M_manager(std::_Any_data &, const std::_Any_data &, std::_Manager_operation)>}, _M_invoker = 0x55d2e43c24d0 <std::_Function_handler<void(bool, QByteArray), qs::hyprland::ipc::HyprlandIpc::refreshToplevels()::<lambda(bool, const QByteArray&)> >::_M_invoke(const std::_Any_data &, bool &&, QByteArray &&)>}
        requestSocket = 0x7fc6e9b33a50
#12 operator() (__closure=<optimized out>) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:117
        arg = <optimized out>
        f = <optimized out>
#13 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, qs::hyprland::ipc::HyprlandIpc::makeRequest(const QByteArray&, const std::function<void(bool, QByteArray)>&)::<lambda()>::<lambda()> >::call(qs::hyprland::ipc::HyprlandIpc::makeRequest(const QByteArray&, const std::function<void(bool, QByteArray)>&)::<lambda()>::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=...) at /usr/include/qt6/QtCore/qobjectdefs_impl.h:66
No locals.

Versions

  • quickshell 0.3.1-1 (Arch), build type RelWithDebInfo
  • qt6-base 6.11.2-3, qt6-declarative 6.11.2-1
  • hyprland 0.56.2-2
  • Linux 7.2.3-arch1-3, Wayland, single monitor, 9 windows open

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions