Skip to content

[Bug]: 打开窗口偶现崩溃 #518

@zzxyb

Description

@zzxyb

SUMMARY | 问题概要

Core was generated by `/usr/bin/treeland'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f31d44b2534 in QQmlData::isSignalConnected(QAbstractDeclarativeData*, QObject const*, int) () from /usr/bin/../lib/x86_64-linux-gnu/libQt6Qml.so.6
[Current thread is 1 (Thread 0x7f31cf435ec0 (LWP 91549))]
(gdb) bt
#0  0x00007f31d44b2534 in QQmlData::isSignalConnected(QAbstractDeclarativeData*, QObject const*, int) () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Qml.so.6
#1  0x00007f31d5f857fe in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#2  0x00007f31d6a70803 in qw_buffer::notify_release (this=0x55f987bb96b0) at /home/xyb/Documents/Code/Github/treeland/build/waylib/qwlroots/src/qwlroots_autogen/GZRP3O7STM/moc_qwbuffer.cpp:139
#3  0x00007f31d72a5028 in qw_signal_connector::callSlot0 (wl_listener=0x55f9881530d8) at /home/xyb/Documents/Code/Github/treeland/qwlroots/src/util/qwsignalconnector.h:144
#4  0x00007f31d3f4cafc in wl_signal_emit_mutable () at /usr/bin/../lib/x86_64-linux-gnu/libwayland-server.so.0
#5  0x00007f31d6400170 in wlr_buffer_unlock (buffer=0x55f987bba470) at ../types/buffer/buffer.c:69
#6  0x00007f31d690df9c in qw_buffer::unlock<>() const (this=0x55f987bba570) at /home/xyb/Documents/Code/Github/treeland/qwlroots/src/types/qwbuffer.h:46
#7  0x00007f31d690de47 in qw_buffer::unlocker::cleanup (pointer=0x55f987bba570) at /home/xyb/Documents/Code/Github/treeland/qwlroots/src/types/qwbuffer.h:28
#8  0x00007f31d690de66 in qw_buffer::unlocker::operator() (this=0x55f9881613b0, pointer=0x55f987bba570) at /home/xyb/Documents/Code/Github/treeland/qwlroots/src/types/qwbuffer.h:29
#9  0x00007f31d690e996 in std::__uniq_ptr_impl<qw_buffer, qw_buffer::unlocker>::reset (this=0x55f9881613b0, __p=0x55f98842eb50) at /usr/include/c++/12/bits/unique_ptr.h:210
#10 0x00007f31d690e2e7 in std::unique_ptr<qw_buffer, qw_buffer::unlocker>::reset (this=0x55f9881613b0, __p=0x55f98842eb50) at /usr/include/c++/12/bits/unique_ptr.h:508
#11 0x00007f31d69265e9 in Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}::operator()() const (__closure=0x55f987a342b0) at /home/xyb/Documents/Code/Github/treeland/waylib/src/server/qtquick/wsurfaceitem.cpp:205
#12 0x00007f31d692f2ef in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}>::call(Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}&, void**)::{lambda()#1}::operator()() const (__closure=0x7ffc8f6cd230)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:141
#13 0x00007f31d692fd5c in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}>::call(Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}&, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}>::call(Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}&, void**)::{lambda()#1}&&) (args=0x7ffc8f6cd358, fn=...) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:65
#14 0x00007f31d692f325 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}>::call(Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}&, void**) (f=..., arg=0x7ffc8f6cd358) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:140
#15 0x00007f31d692e0bf in QtPrivate::FunctorCallable<Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}>::call<QtPrivate::List<>, void>(Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}&, void*, void**) (f=..., arg=0x7ffc8f6cd358) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:362
#16 0x00007f31d692cd18 in QtPrivate::QCallableObject<Waylib::Server::WSurfaceItemContentPrivate::init()::{lambda()#3}, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x55f987a342a0, r=0x55f988200820, a=0x7ffc8f6cd358, ret=0x0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:572
#17 0x00007f31d5f85a1c in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007f31d689a88f in Waylib::Server::WSurface::bufferChanged (this=0x55f987c53ab0) at /home/xyb/Documents/Code/Github/treeland/build/waylib/src/server/waylibserver_autogen/7GB2EGQPHR/moc_wsurface.cpp:386
#19 0x00007f31d690bf71 in Waylib::Server::WSurfacePrivate::setBuffer (this=0x55f987c53840, newBuffer=0x55f98842eb50) at /home/xyb/Documents/Code/Github/treeland/waylib/src/server/kernel/wsurface.cpp:137
#20 0x00007f31d690bfd1 in Waylib::Server::WSurfacePrivate::updateBuffer (this=0x55f987c53840) at /home/xyb/Documents/Code/Github/treeland/waylib/src/server/kernel/wsurface.cpp:146
#21 0x00007f31d690b883 in Waylib::Server::WSurfacePrivate::on_commit (this=0x55f987c53840) at /home/xyb/Documents/Code/Github/treeland/waylib/src/server/kernel/wsurface.cpp:48
#22 0x00007f31d690ba5d in operator() (__closure=0x55f987db85b0) at /home/xyb/Documents/Code/Github/treeland/waylib/src/server/kernel/wsurface.cpp:85
#23 0x00007f31d690da7f in operator() (__closure=0x7ffc8f6cd4d0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:141
#24 0x00007f31d690dbd4 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WSurfacePrivate::connect()::<lambda()> >::call(Waylib::Server::WSurfacePrivate::connect()::<lambda()>&, void**)::<lambda()> >(void **, struct {...} &&) (args=0x7ffc8f6cd5f8, fn=...)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:65
#25 0x00007f31d690dab5 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WSurfacePrivate::connect()::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7ffc8f6cd5f8) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:140
#26 0x00007f31d690d953 in QtPrivate::FunctorCallable<Waylib::Server::WSurfacePrivate::connect()::<lambda()> >::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffc8f6cd5f8) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:362
#27 0x00007f31d690d77a in QtPrivate::QCallableObject<Waylib::Server::WSurfacePrivate::connect()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55f987db85a0, r=0x55f987c53ab0, a=0x7ffc8f6cd5f8, ret=0x0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:572
#28 0x00007f31d5f85a1c in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#29 0x00007f31d6a70e97 in qw_surface::notify_commit (this=0x55f98820eab0) at /home/xyb/Documents/Code/Github/treeland/build/waylib/qwlroots/src/qwlroots_autogen/GZRP3O7STM/moc_qwcompositor.cpp:308
#30 0x00007f31d72a5028 in qw_signal_connector::callSlot0 (wl_listener=0x55f9865580b8) at /home/xyb/Documents/Code/Github/treeland/qwlroots/src/util/qwsignalconnector.h:144
#31 0x00007f31d3f4cafc in wl_signal_emit_mutable () at /usr/bin/../lib/x86_64-linux-gnu/libwayland-server.so.0
#32 0x00007f31d640562d in surface_commit_state (surface=0x55f9881775b0, next=0x55f988177730) at ../types/wlr_compositor.c:567
#33 0x00007f31d6405761 in surface_handle_commit (client=0x55f9873afc60, resource=0x55f987a962a0) at ../types/wlr_compositor.c:598
#34 0x00007f31d2b3301a in ??? () at /lib/x86_64-linux-gnu/libffi.so.8
#35 0x00007f31d2b324be in ??? () at /lib/x86_64-linux-gnu/libffi.so.8
#36 0x00007f31d2b32bad in ffi_call () at /lib/x86_64-linux-gnu/libffi.so.8
#37 0x00007f31d3f50f46 in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libwayland-server.so.0
#38 0x00007f31d3f4bc9a in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libwayland-server.so.0
#39 0x00007f31d3f4ec52 in wl_event_loop_dispatch () at /usr/bin/../lib/x86_64-linux-gnu/libwayland-server.so.0
#40 0x00007f31d69027fe in operator() (__closure=0x55f9853a63d0) at /home/xyb/Documents/Code/Github/treeland/waylib/src/server/kernel/wserver.cpp:108
#41 0x00007f31d69044ab in operator() (__closure=0x7ffc8f6cde50) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:141
#42 0x00007f31d690455c in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WServerPrivate::init()::<lambda()> >::call(Waylib::Server::WServerPrivate::init()::<lambda()>&, void**)::<lambda()> >(void **, struct {...} &&) (args=0x7ffc8f6cdfe0, fn=...)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:65
#43 0x00007f31d69044e1 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WServerPrivate::init()::<lambda()> >::call(struct {...} &, void **) (f=..., arg=0x7ffc8f6cdfe0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:140
#44 0x00007f31d6904455 in QtPrivate::FunctorCallable<Waylib::Server::WServerPrivate::init()::<lambda()> >::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7ffc8f6cdfe0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:362
#45 0x00007f31d690436e in QtPrivate::QCallableObject<Waylib::Server::WServerPrivate::init()::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=1, this_=0x55f9853a63c0, r=0x55f985df6f40, a=0x7ffc8f6cdfe0, ret=0x0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:572
#46 0x00007f31d5f85a1c in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#47 0x00007f31d5f8ff33 in QSocketNotifier::activated(QSocketDescriptor, QSocketNotifier::Type, QSocketNotifier::QPrivateSignal) () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#48 0x00007f31d5f90063 in QSocketNotifier::event(QEvent*) () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#49 0x00007f31d5f39938 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#50 0x00007f31d613554f in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#51 0x00007f31d33b4e0f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#52 0x00007f31d33b6e97 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#53 0x00007f31d33b74b0 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#54 0x00007f31d612d070 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#55 0x00007f31d5f4267a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#56 0x00007f31d5f3c768 in QCoreApplication::exec() () at /usr/bin/../lib/x86_64-linux-gnu/libQt6Core.so.6
#57 0x0000

LAUNCH-WAY | 启动方式

lightdm

BACKEND | 启动后端

Wayland

STEPS TO REPRODUCE | 复现步骤

打开窗口偶现,无固定复现步骤

OBSERVED RESULT | 观察到的结果

No response

EXPECTED RESULT | 期望的结果

No response

ADDITIONAL INFORMATION | 额外补充

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions