Skip to content

[Bug]: 双屏多次拔插屏幕 treeland崩溃 高概率 #742

@zorowk

Description

@zorowk

SUMMARY | 问题概要

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `/usr/bin/treeland --lockscreen'.
Program terminated with signal SIGABRT, Aborted.
#0  0x00007fa9ead6e13c in ?? () from /usr/bin/../lib/x86_64-linux-gnu/libc.so.6
[Current thread is 1 (Thread 0x7fa9e5d90f40 (LWP 11713))]
(gdb) bt
#0  0x00007fa9ead6e13c in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libc.so.6
#1  0x00007fa9ead20282 in raise () at /usr/bin/../lib/x86_64-linux-gnu/libc.so.6
#2  0x00007fa9ead094f2 in abort () at /usr/bin/../lib/x86_64-linux-gnu/libc.so.6
#3  0x00007fa9ee1084c5 in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libdtk6log.so.0
#4  0x00007fa9ee10a677 in Dtk::Core::Logger::write(QDateTime const&, Dtk::Core::Logger::LogLevel, char const*, int, char const*, char const*, QString const&) ()
    at /usr/bin/../lib/x86_64-linux-gnu/libdtk6log.so.0
#5  0x00007fa9ee10a6ed in Dtk::Core::Logger::write(Dtk::Core::Logger::LogLevel, char const*, int, char const*, char const*, QString const&) ()
    at /usr/bin/../lib/x86_64-linux-gnu/libdtk6log.so.0
#6  0x00007fa9ee10a7fc in ??? () at /usr/bin/../lib/x86_64-linux-gnu/libdtk6log.so.0
#7  0x00007fa9ecc5504b in qt_message_print (msgType=QtFatalMsg, context=..., message=...) at ./src/corelib/global/qlogging.cpp:2082
#8  0x00007fa9ecc4df4b in qt_message(QtMsgType, const QMessageLogContext &, const char *, typedef __va_list_tag __va_list_tag *)
    (msgType=msgType@entry=QtFatalMsg, context=..., msg=msg@entry=0x7fa9ecf1c748 "ASSERT: \"%s\" in file %s, line %d", ap=ap@entry=0x7ffcda0630d8) at ./src/corelib/global/qlogging.cpp:379
#9  0x00007fa9ecc12415 in QMessageLogger::fatal (this=this@entry=0x7ffcda063318, msg=msg@entry=0x7fa9ecf1c748 "ASSERT: \"%s\" in file %s, line %d") at ./src/corelib/global/qlogging.cpp:884
#10 0x00007fa9ecc1248f in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at ./src/corelib/global/qassert.cpp:105
#11 0x00007fa9edae04c9 in Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0::operator()() const (this=0x5030008f87f0)
    at /home/uos/Downloads/treeland/waylib/src/server/qtquick/private/wbufferrenderer.cpp:165
#12 0x00007fa9edae044a in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0>::call(Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0&, void**)::{lambda()#1}::operator()() const (this=0x7fa9e3d80fe0)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:141
#13 0x00007fa9edae0409 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0>::call(Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0&, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0>::call(Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0&, void**)::{lambda()#1}&&) (args=0x7ffcda0635d0, fn=...) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:65
#14 0x00007fa9edae0392 in QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0>::call(Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0&, void**) (f=..., arg=0x7ffcda0635d0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:140
#15 0x00007fa9edae0271 in QtPrivate::FunctorCallable<Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0>::call<QtPrivate::List<>, void>(Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0&, void*, void**) (f=..., arg=0x7ffcda0635d0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:362
#16 0x00007fa9edae020e in QtPrivate::QCallableObject<Waylib::Server::WBufferRenderer::setSourceList(QList<QQuickItem*>, bool)::$_0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (which=1, this_=0x5030008f87e0, r=0x51300025f7c0, a=0x7ffcda0635d0, ret=0x0) at /usr/include/x86_64-linux-gnu/qt6/QtCore/qobjectdefs_impl.h:572
#17 0x00007fa9eccfc46c in QtPrivate::QSlotObjectBase::call (a=0x7ffcda0635d0, r=0x51300025f7c0, this=0x5030008f87e0, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at ./src/corelib/kernel/qobjectdefs_impl.h:486
#18 doActivate<false> (sender=0x511000023680, signal_index=0, argv=0x7ffcda0635d0) at ./src/corelib/kernel/qobject.cpp:4120
#19 0x00007fa9eccfc9c3 in QObject::destroyed (this=<optimized out>, _t1=<optimized out>) at ./obj-x86_64-linux-gnu/src/corelib/kernel/moc_qobject.cpp:229
#20 0x00007fa9eccf3bf2 in QObject::~QObject (this=0x511000023680, this=<optimized out>) at ./src/corelib/kernel/qobject.cpp:1040
#21 0x00007fa9eda2d616 in Waylib::Server::WQuickCursor::~WQuickCursor (this=0x511000023680) at /home/uos/Downloads/treeland/waylib/src/server/qtquick/wquickcursor.cpp:346
#22 0x00007fa9edd59a67 in QQmlPrivate::QQmlElement<Waylib::Server::WQuickCursor>::~QQmlElement (this=0x511000023680) at /usr/include/x86_64-linux-gnu/qt6/QtQml/qqmlprivate.h:104
#23 0x00007fa9edd59a99 in QQmlPrivate::QQmlElement<Waylib::Server::WQuickCursor>::~QQmlElement (this=0x511000023680) at /usr/include/x86_64-linux-gnu/qt6/QtQml/qqmlprivate.h:102
#24 0x00007fa9eccf15eb in QObjectPrivate::deleteChildren (this=this@entry=0x50c0000025c0) at ./src/corelib/kernel/qobject.cpp:2211
#25 0x00007fa9eccf3df8 in QObject::~QObject (this=<optimized out>, this=<optimized out>) at ./src/corelib/kernel/qobject.cpp:1138
#26 0x00007fa9ed72dbc2 in Waylib::Server::WOutputCursor::~WOutputCursor (this=0x5040001fb9d0)
    at waylib/src/server/waylibserver_autogen/67YK4P2WLV/../../../../../../waylib/src/server/qtquick/private/woutputitem_p.h:12
#27 0x00007fa9ed72dbe9 in Waylib::Server::WOutputCursor::~WOutputCursor (this=0x5040001fb9d0)
    at waylib/src/server/waylibserver_autogen/67YK4P2WLV/../../../../../../waylib/src/server/qtquick/private/woutputitem_p.h:12
#28 0x00007fa9eccf2716 in QObject::event (this=0x5040001fb9d0, e=<optimized out>) at ./src/corelib/kernel/qobject.cpp:1404
#29 0x00007fa9eccafeb8 in QCoreApplication::notifyInternal2 (receiver=0x5040001fb9d0, event=0x5030007c9d20) at ./src/corelib/kernel/qcoreapplication.cpp:1165
#30 0x00007fa9eccb7d77 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x50e000025180) at ./src/corelib/kernel/qcoreapplication.cpp:1965
#31 0x00007fa9ecea7507 in postEventSourceDispatch (s=0x50b000000720) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:246
#32 0x00007fa9ea7c3e0f in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#33 0x00007fa9ea7c5e97 in ??? () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
--Type <RET> for more, q to quit, c to continue without paging--
#34 0x00007fa9ea7c64b0 in g_main_context_iteration () at /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007fa9ecea4d50 in QEventDispatcherGlib::processEvents (this=0x503000003ac0, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:396
#36 0x00007fa9eccb8c2a in QEventLoop::exec (this=0x7ffcda063ce0, flags=...) at ./src/corelib/global/qflags.h:34
#37 0x00007fa9eccb2ce8 in QCoreApplication::exec () at ./src/corelib/global/qflags.h:74
#38 0x0000559a18224f7c in main (argc=2, argv=0x7ffcda063f88) at /home/uos/Downloads/treeland/src/main.cpp:52

LAUNCH-WAY | 启动方式

unknown

BACKEND | 启动后端

unknown

STEPS TO REPRODUCE | 复现步骤

  1. 笔记本连接扩展hdmi屏幕
  2. 多次拔插硬件hdmi接口 treeland崩溃

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