Skip to content

Crash when resume from suspend related to PipeWire #124

@bbedward

Description

@bbedward

General crash information

General information
===== Build Information ===== Git Revision: 78e3874ac67a570abf9c800bdac3250b44dd3844 Buildtime Qt Version: 6.9.1 Build Type: RelWithDebInfo Compiler: GNU (15.1.1) Complie Flags: Build configuration: Distributor: Unset Distributor provided debuginfo: OFF Disable precompild headers (dev): OFF Build tests (dev): OFF ASAN (dev): OFF Keep Frame Pointers (dev): OFF Crash Handling: ON Use jemalloc: 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 Greetd: ON UPower: ON Notifications: ON Bluetooth: ON ===== Runtime Information ===== Runtime Qt Version: 6.9.1 Crashed process ID: 576721 Run ID: 17cchbrizs Shell ID: 8f43b761b3130f048189789137de7a6c Config Path: /home/brandon/repos/dank-material-dark-shell/shell.qml ===== Report Integrity ===== Minidump save status: 0 Log save status: 0 Binary copy status: 0 ===== System Information ===== /etc/os-release: NAME="Arch Linux" PRETTY_NAME="Arch Linux" ID=arch BUILD_ID=rolling ANSI_COLOR="38;2;23;147;209" HOME_URL="https://archlinux.org/" DOCUMENTATION_URL="https://wiki.archlinux.org/" SUPPORT_URL="https://bbs.archlinux.org/" BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues" PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/" LOGO=archlinux-logo /etc/lsb-release: DISTRIB_ID="Arch" DISTRIB_RELEASE="rolling" DISTRIB_DESCRIPTION="Arch Linux" 

What caused the crash

Crashes when resuming from suspend, using the onDefaultAudioSinkChanged signal:

 Connections { target: Pipewire function onDefaultAudioSinkChanged() { updateAudioSinks() } function updateAudioSinks() { if (!Pipewire.ready || !Pipewire.nodes) return let sinks = [] if (Pipewire.nodes.values) { for (let i = 0; i < Pipewire.nodes.values.length; i++) { let node = Pipewire.nodes.values[i] if (!node) continue if ((node.type & PwNodeType.AudioSink) === PwNodeType.AudioSink && !node.isStream) { let displayName = getDisplayName(node) sinks.push({ id: node.id.toString(), name: node.name, displayName: displayName, subtitle: getDeviceSubtitle(node.name), active: node === root.sink, node: node }) } } } audioSinks = sinks } 

Minidump

minidump.dmp.log.gz

Log file

log.qslog.log

Configuration

qs-shell.zip

Backtrace

(gdb) bt -full #0 0x0000558e41ce18f2 in QArrayDataPointer<char16_t>::QArrayDataPointer (this=0x7f4c1cc5e330, other=...) at /usr/include/qt6/QtCore/qarraydatapointer.h:38 #1 0x0000558e41ce12c1 in QString::QString (this=0x7f4c1cc5e330, other=...) at /usr/include/qt6/QtCore/qstring.h:1340 #2 0x0000558e420a60af in std::pair<QString const, QString>::pair (this=0x7f4c1cc5e330) at /usr/include/c++/15.1.1/bits/stl_pair.h:312 #3 0x0000558e420a6113 in construct_at<std::pair<QString const, QString>, std::pair<QString const, QString> const&> (__location=0x7f4c1cc5e330) at /usr/include/c++/15.1.1/bits/stl_construct.h:110 __loc = 0x7f4c1cc5e330 #4 0x0000558e420a6081 in std::allocator_traits<std::allocator<std::_Rb_tree_node<std::pair<QString const, QString> > > >::construct<std::pair<QString const, QString>, std::pair<QString const, QString> const&> (__a=..., __p=0x7f4c1cc5e330) at /usr/include/c++/15.1.1/bits/alloc_traits.h:676 #5 std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_construct_node<std::pair<QString const, QString> const&> (this=0x7f4c1b5e3048, __node=0x7f4c1cc5e310) at /usr/include/c++/15.1.1/bits/stl_tree.h:1237 #6 0x0000558e420a5f15 in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_create_node<std::pair<QString const, QString> const&> (this=0x7f4c1b5e3048) at /usr/include/c++/15.1.1/bits/stl_tree.h:1254 __tmp = 0x7f4c1cc5e310 #7 0x0000558e420a5ed4 in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_Alloc_node::operator()<std::pair<QString const, QString> const&> (this=0x7ffc5fc76940, __arg={...}) at /usr/include/c++/15.1.1/bits/stl_tree.h:1136 #8 0x0000558e420a5e23 in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_clone_node<false, std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_Alloc_node> (this=0x7f4c1b5e3048, __x=0x1, __node_gen=...) at /usr/include/c++/15.1.1/bits/stl_tree.h:1287 __tmp = 0xfefefefefefefefe #9 0x0000558e420a5c22 in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_copy<false, std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_Alloc_node> (this=0x7f4c1b5e3048, __x=0x1, __p=0x7f4c1b5e3050, __node_gen=...) at /usr/include/c++/15.1.1/bits/stl_tree.h:2546 __top = 0x558e4208c40f <std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_begin_node() const+43> __top_base = 0x7ffc5fc768d0 #10 0x0000558e420a5783 in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_copy<false, std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_Alloc_node> (this=0x7f4c1b5e3048, __x=..., __gen=...) at /usr/include/c++/15.1.1/bits/stl_tree.h:1523 __root = 0x7f4c1ad55e08 #11 0x0000558e420a4d1d in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_M_copy (this=0x7f4c1b5e3048, __x=...) at /usr/include/c++/15.1.1/bits/stl_tree.h:1534 __an = {_M_t = @0x7f4c1b5e3048} #12 0x0000558e420a3209 in std::_Rb_tree<QString, std::pair<QString const, QString>, std::_Select1st<std::pair<QString const, QString> >, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::_Rb_tree (this=0x7f4c1b5e3048, __x=...) at /usr/include/c++/15.1.1/bits/stl_tree.h:1564 #13 0x0000558e420a070f in std::map<QString, QString, std::less<QString>, std::allocator<std::pair<QString const, QString> > >::map (this=0x7f4c1b5e3048) at /usr/include/c++/15.1.1/bits/stl_map.h:222 #14 0x0000558e420a0750 in QMapData<std::map<QString, QString, std::less<QString>, std::allocator<std::pair<QString const, QString> > > >::QMapData (this=0x7f4c1b5e3040) at /usr/include/qt6/QtCore/qmap.h:27 #15 0x0000558e420a0829 in QtPrivate::QExplicitlySharedDataPointerV2<QMapData<std::map<QString, QString, std::less<QString>, std::allocator<std::pair<QString const, QString> > > > >::detach (this=0x7f4c1b0b54f8) at /usr/include/qt6/QtCore/qshareddata_impl.h:80 copy = {d = {ptr = 0x7ffc5fc76a00}} #16 0x0000558e4209dec7 in QMap<QString, QString>::detach (this=0x7f4c1b0b54f8) at /usr/include/qt6/QtCore/qmap.h:277 #17 0x0000558e4209c707 in QMap<QString, QString>::begin (this=0x7f4c1b0b54f8) at /usr/include/qt6/QtCore/qmap.h:607 #18 0x0000558e4209b071 in QMap<QString, QString>::keyValueBegin (this=0x7f4c1b0b54f8) at /usr/include/qt6/QtCore/qmap.h:617 #19 0x0000558e42099d3b in QtPrivate::QKeyValueRange<QMap<QString, QString>&>::begin (this=0x7ffc5fc76af0) --Type <RET> for more, q to quit, c to continue without paging--c at /usr/include/qt6/QtCore/qiterator.h:302 #20 0x0000558e42098d10 in qs::service::pipewire::PwNodeIface::properties (this=0x7f4c1b5e3100) at /home/brandon/repos/quickshell/src/services/pipewire/qml.cpp:341 k = @0x7ffc5fc76b60: {d = {d = 0x7ffc5fc76c00, ptr = 0x7f4c1b5e3100 u"쏘䉋喎", size = 140721915390976}} v = @0x7f4c2c261c3b: {d = {d = 0x758948001f0fb9eb, ptr = 0x2903e8c87d8948c0 <error: Cannot access memory at address 0x2903e8c87d8948c0>, size = -8410251862581116945}} map = {d = {d = {ptr = 0x0}}} #21 0x0000558e42083d71 in qs::service::pipewire::PwNodeIface::qt_static_metacall (_o=0x7f4c1b5e3100, _c=QMetaObject::ReadProperty, _id=7, _a=0x7ffc5fc76cd0) at /home/brandon/repos/quickshell/build/src/services/pipewire/quickshell-service-pipewire_autogen/EWIEGA46WW/moc_qml.cpp:829 _v = 0x7ffc5fc76ca0 _t = 0x7f4c1b5e3100 #22 0x00007f4c2c1ff0a2 in QQmlPropertyData::readProperty (this=0x7f4c1ef88cf0, target=0x7f4c1b5e3100, property=0x7ffc5fc76ca0) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:366 args = {0x7ffc5fc76ca0, 0x0} #23 QV4::loadProperty (v4=<optimized out>, wrapper=<optimized out>, object=0x7f4c1b5e3100, property=...) at /usr/src/debug/qt6-declarative/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:227 v = {d = {d = {ptr = 0x0}}} scope = {engine = 0x7f4c271a8300, mark = 0x7f4c1fdbf700} propMetaType = {d_ptr = 0x7f4c2bc13640 <QtPrivate::QMetaTypeInterfaceWrapper<QMap<QString, QVariant> >::metaType>} encodeSimple = {__property = <optimized out>, __object = <optimized out>} encodeInt = {__property = <optimized out>, __object = <optimized out>} encodeDouble = {__property = <optimized out>, __object = <optimized out>} encodeDate = {__property = <optimized out>, __object = <optimized out>, __v4 = <optimized out>, __wrapper = <optimized out>, __scope = <optimized out>} encodeString = {__property = <optimized out>, __object = <optimized out>, __v4 = <optimized out>} encodeSequence = {__v4 = <optimized out>, __propMetaType = <optimized out>, __wrapper = <optimized out>, __property = <optimized out>, __scope = <optimized out>} qmlType = {d = {o = 0x0}} v = {d = {static MaxInternalSize = 24, data = {data = "\240l\307_\374\177\000\000\000\000\000\000\000\000\000\0000\034\271\034L\177\000", shared = 0x7ffc5fc76ca0, _forAlignment = 6.952586401173886e-310}, is_shared = 0, is_null = 0, packedType = 34991262572736}} #24 0x00007f4c17b52054 in ??? () #25 0x00007f4c271a8300 in ??? () #26 0x0000000000000000 in ??? () 

Executable

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcrash

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions