https://bugs.kde.org/show_bug.cgi?id=527246

            Bug ID: 527246
           Summary: Spectacle crashes on UnionStyle::drawControl
                    (backtrace available)
    Classification: Applications
           Product: Spectacle
      Version First unspecified
       Reported In:
          Platform: Other
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: General
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected]
  Target Milestone: ---

DESCRIPTION
Discovered while setting the font size of the texts of my last two bug reports.
Had to use Photos to edit those.

Having Union app style set, Spectacle crashes while manipulating some of its UI
elements such as the color picker or the font size/style picker. Could not
reproduce this reliably.

STEPS TO REPRODUCE
Could not reproduce reliably. Poking around UI elements such as the font or
color picker was enough to trigger this twice.

OBSERVED RESULT
Spectacle crashes on UnionStyle::drawControl. Backtrace is shown below.

EXPECTED RESULT
Spectacle should not crash just by using the Union engine.

SOFTWARE/OS VERSIONS
Operating System (available in the Info Center app, or by running `kinfo` in a
terminal window):
KDE Plasma Version: 6.8.0
KDE Frameworks Version: 6.31.0
Qt Version: 6.12.0

ADDITIONAL INFORMATION

Using Vulkan threaded RHI on Wayland.

Core was generated by '/usr/bin/spectacle --dbus '.
(lldb) bt
* thread #1, name = 'spectacle', stop reason = SIGSEGV: sent by tkill system
call (sender pid=907298, uid=1000)
   * frame #0: 0x00007f486509a11c
libc.so.6`__pthread_kill_implementation(threadid=<unavailable>, signo=11,
no_tid=<unavailable>) at pthread_kill.c:44:76
     frame #1: 0x00007f486503e5d0 libc.so.6`raise(sig=11) at raise.c:26:13
     frame #2: 0x00007f486926fee9
libKF6Crash.so.6`KCrash::defaultCrashHandler(sig=11) at kcrash.cpp:653:18
     frame #3: 0x00007f486503e6f0 libc.so.6`__restore_rt
     frame #4: 0x00007f4865d93e25
libQt6Core.so.6`QMetaObject::cast(this=0x00007f486855ee00,
obj=0x00007f4867fd462f) const at qmetaobject.cpp:413:47
     frame #5: 0x00007f484b1a79dc UnionWidgetsStyle.so`QTreeView const*
QtPrivate::qobject_cast_helper<QTreeView const*, QObject
const>(object=<unavailable>) at qobjectdefs.h:766:71 [inlined]
     frame #6: 0x00007f484b1a79cb UnionWidgetsStyle.so`QTreeView const*
qobject_cast<QTreeView const*>(object=<unavailable>) at qobject.h:442:45
[inlined]
     frame #7: 0x00007f484b1a79cb
UnionWidgetsStyle.so`ItemViewElement::elementAttributes(this=<unavailable>)
const at ItemViewElement.cpp:229:62
     frame #8: 0x00007f484b195b97
UnionWidgetsStyle.so`AbstractElement::createElement(this=0x0000562d49886580,
name=0x0000562d4c346a28) const at AbstractElement.cpp:642:50
     frame #9: 0x00007f484b196154
UnionWidgetsStyle.so`AbstractElement::prepareElements(this=0x0000562d49886580,
opt=<unavailable>, widget=<unavailable>, targetHierarchy=<unavailable>) const
at AbstractElement.cpp:475:38
     frame #10: 0x00007f484b1a82d5
UnionWidgetsStyle.so`ItemViewElement::update(this=0x0000562d49886580) at
ItemViewElement.cpp:39:49
     frame #11: 0x00007f484b190c17 UnionWidgetsStyle.so`void
ElementCache::detail::element<QStyle::ControlElement,
38>(output=std::__shared_ptr<AbstractElement,
__gnu_cxx::_S_atomic>::element_type @ 0x0000562d49886580 strong=2 weak=0,
hash=<unavailable>, style=<unavailable>, option=0x00007ffddf4acd50,
widget=<unavailable>) at ElementCache.h:38:23
     frame #12: 0x00007f484b186ea1
UnionWidgetsStyle.so`operator(__closure=<unavailable>) at ElementCache.h:60:51
[inlined]
     frame #13: 0x00007f484b186e8d
UnionWidgetsStyle.so`element<QStyle::ControlElement, 0, 1, 2, 3, 4, 5, 6, 7, 8,
9, 10, 11, 12, 13, 14, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46>(enumValue=<unavailable>,
hash=<unavailable>, style=<unavailable>, option=<unavailable>,
widget=<unavailable>) at ElementCache.h:62:10
     frame #14: 0x00007f484b187d82
UnionWidgetsStyle.so`UnionStyle::drawControl(this=0x0000562d44e74e80,
controlElement=CE_ShapedFrame, option=0x00007ffddf4acd50,
painter=0x00007ffddf4acdd0, widget=0x0000562d494921c0) const at
UnionStyle.cpp:175:107
     frame #15: 0x00007f4867fd4558
libQt6Widgets.so.6`QFrame::drawFrame(this=0x0000562d494921c0,
p=0x00007ffddf4acdd0) at qframe.cpp:499:25
     frame #16: 0x00007f4867fd462f
libQt6Widgets.so.6`QFrame::paintEvent(this=0x0000562d494921c0,
(null)=<unavailable>) at qframe.cpp:487:14
     frame #17: 0x00007f4867fc98c0
libQt6Widgets.so.6`QAbstractScrollArea::event(this=0x0000562d494921c0,
e=0x00007ffddf4acf60) at qabstractscrollarea.cpp:929:27
     frame #18: 0x00007f4867f0355f
libQt6Widgets.so.6`QApplicationPrivate::notify_helper(this=<unavailable>,
receiver=0x0000562d494921c0, e=0x00007ffddf4acf60) at qapplication.cpp:3279:31
     frame #19: 0x00007f4865d891d8
libQt6Core.so.6`QCoreApplication::notifyInternal2(receiver=0x0000562d494921c0,
event=0x00007ffddf4acf60) at qcoreapplication.cpp:1153:24
     frame #20: 0x00007f4867f5675c
libQt6Widgets.so.6`QWidgetPrivate::sendPaintEvent(this=0x0000562d4c1e1900,
toBePainted=<unavailable>) at qwidget.cpp:5663:43
     frame #21: 0x00007f4867f56c37
libQt6Widgets.so.6`QWidgetPrivate::drawWidget(this=0x0000562d4c1e1900,
pdev=0x0000562d46b0d2e8, rgn=<unavailable>, offset=<unavailable>,
flags=QWidgetPrivate::DrawWidgetFlags @ 0x000055ba51b06f80,
sharedPainter=<unavailable>, repaintManager=<unavailable>) at
qwidget.cpp:5613:31
     frame #22: 0x00007f4867f59e01
libQt6Widgets.so.6`QWidgetPrivate::paintSiblingsRecursive(this=0x0000562d49377dc0,
pdev=0x0000562d46b0d2e8, siblings=0x0000562d49377dd8, index=<unavailable>,
rgn=0x00007ffddf4ad2e0, offset=0x00007ffddf4ad580,
flags=QWidgetPrivate::DrawWidgetFlags @ 0x00007ffddf4ad250,
sharedPainter=0x0000000000000000, repaintManager=0x0000562d4c3647e0) at
qwidget.cpp:5792:23
     frame #23: 0x00007f4867f59bc5
libQt6Widgets.so.6`QWidgetPrivate::paintSiblingsRecursive(this=0x0000562d49377dc0,
pdev=0x0000562d46b0d2e8, siblings=0x0000562d49377dd8, index=13,
rgn=0x00007ffddf4ad560, offset=0x00007ffddf4ad580,
flags=QWidgetPrivate::DrawWidgetFlags @ 0x00007ffddf4ad370,
sharedPainter=0x0000000000000000, repaintManager=0x0000562d4c3647e0) at
qwidget.cpp:5778:31
     frame #24: 0x00007f4867f57209
libQt6Widgets.so.6`QWidgetPrivate::drawWidget(this=0x0000562d49377dc0,
pdev=0x0000562d46b0d2e8, rgn=<unavailable>, offset=<unavailable>,
flags=<unavailable>, sharedPainter=<unavailable>, repaintManager=<unavailable>)
at qwidget.cpp:5654:31
     frame #25: 0x00007f4867f7edc6
libQt6Widgets.so.6`QWidgetRepaintManager::paintAndFlush(this=0x0000562d4c3647e0)
at qwidgetrepaintmanager.cpp:913:34
     frame #26: 0x00007f4867f6552f
libQt6Widgets.so.6`QWidget::event(this=0x0000562d46b0d1b0,
event=0x0000562d4c3a5d60) at qwidget.cpp:9290:28
     frame #27: 0x00007f4867f0355f
libQt6Widgets.so.6`QApplicationPrivate::notify_helper(this=<unavailable>,
receiver=0x0000562d46b0d1b0, e=0x0000562d4c3a5d60) at qapplication.cpp:3279:31
     frame #28: 0x00007f4865d891d8
libQt6Core.so.6`QCoreApplication::notifyInternal2(receiver=0x0000562d46b0d1b0,
event=0x0000562d4c3a5d60) at qcoreapplication.cpp:1153:24
     frame #29: 0x00007f4865d8a36f
libQt6Core.so.6`QCoreApplication::sendEvent(receiver=<unavailable>,
event=0x0000562d4c3a5d60) at qcoreapplication.cpp:1598:27 [inlined]
     frame #30: 0x00007f4865d8a35e
libQt6Core.so.6`QCoreApplicationPrivate::sendPostedEvents(receiver=0x0000000000000000,
event_type=0, data=0x0000562d44d31b60) at qcoreapplication.cpp:1953:36
     frame #31: 0x00007f48660c66b8
libQt6Core.so.6`QCoreApplication::sendPostedEvents(receiver=0x0000000000000000,
event_type=0) at qcoreapplication.cpp:1806:46 [inlined]
     frame #32: 0x00007f48660c6696
libQt6Core.so.6`postEventSourceDispatch(s=0x0000562d44d3d480,
(null)=<unavailable>, (null)=<unavailable>) at qeventdispatcher_glib.cpp:248:39
     frame #33: 0x00007f486205375e
libglib-2.0.so.0`g_main_dispatch(context=0x00007f4844000f00) at gmain.c:3734:28
     frame #34: 0x00007f486205cc50
libglib-2.0.so.0`g_main_context_dispatch_unlocked(context=0x00007f4844000f00)
at gmain.c:4603:7 [inlined]
     frame #35: 0x00007f486205cc38
libglib-2.0.so.0`g_main_context_iterate_unlocked(context=0x00007f4844000f00,
block=1, dispatch=1, self=<unavailable>) at gmain.c:4672:5
     frame #36: 0x00007f486205cdb5
libglib-2.0.so.0`g_main_context_iteration(context=0x00007f4844000f00,
may_block=1) at gmain.c:4738:12
     frame #37: 0x00007f48660c4d22
libQt6Core.so.6`QEventDispatcherGlib::processEvents(this=0x0000562d44cfb6d0,
flags=<unavailable>) at qeventdispatcher_glib.cpp:402:43
     frame #38: 0x00007f4865d96a74
libQt6Core.so.6`QEventLoop::processEvents(this=0x00007ffddf4adc60,
flags=<unavailable>) at qeventloop.cpp:109:68 [inlined]
     frame #39: 0x00007f4865d96a58
libQt6Core.so.6`QEventLoop::exec(this=0x00007ffddf4adc60, flags=<unavailable>)
at qeventloop.cpp:198:22
     frame #40: 0x00007f4865d8cfca libQt6Core.so.6`QCoreApplication::exec() at
qcoreapplication.cpp:1496:36
     frame #41: 0x0000562d28166545 spectacle`main(argc=<unavailable>,
argv=<unavailable>) at Main.cpp:140:20
     frame #42: 0x00007f4865027781
libc.so.6`__libc_start_call_main(main=(spectacle`main at Main.cpp:33:1),
argc=2, argv=0x00007ffddf4ae048) at libc_start_call_main.h:59:16
     frame #43: 0x00007f48650278b9
libc.so.6`__libc_start_main_impl(main=(spectacle`main at Main.cpp:33:1),
argc=2, argv=0x00007ffddf4ae048, init=<unavailable>, fini=<unavailable>,
rtld_fini=<unavailable>, stack_end=0x00007ffddf4ae038) at libc-start.c:372:3
     frame #44: 0x0000562d28167c55 spectacle`_start + 37
(lldb)

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to