Bug 252313

Summary: graphics/spectacle crashes without saving if export to remote storage is attempted
Product: Ports & Packages Reporter: Graham Perrin <grahamperrin>
Component: Individual Port(s)Assignee: freebsd-kde (group) <kde>
Status: Closed FIXED    
Severity: Affects Only Me CC: adridg, tcberner
Priority: --- Flags: tcberner: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Crash handler reports: "The generated crash information is probably not useful"
none
A screenshot of Spectacle prior to a crash. none

Description Graham Perrin freebsd_committer freebsd_triage 2020-12-31 18:40:10 UTC
Created attachment 221146 [details]
Crash handler reports: "The generated crash information is probably not useful"

grahamperrin@mowa219-gjp4-8570p:~ % date ; uname -v
Thu 31 Dec 2020 18:39:14 GMT
FreeBSD 13.0-CURRENT #74 r368589: Sun Dec 13 07:55:46 GMT 2020     root@mowa219-gjp4-8570p:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG 
grahamperrin@mowa219-gjp4-8570p:~ % pkg query '%o %v %R' spectacle
graphics/spectacle 20.12.0 FreeBSD
grahamperrin@mowa219-gjp4-8570p:~ % 

----

Operating System: FreeBSD 13.0
KDE Plasma Version: 5.20.4
KDE Frameworks Version: 5.77.0
Qt Version: 5.15.2
Kernel Version: 13.0-CURRENT
OS Type: 64-bit
Memory: 15.9 GiB of RAM
Graphics Processor: AMD TURKS
Comment 1 Graham Perrin freebsd_committer freebsd_triage 2020-12-31 18:41:43 UTC
Created attachment 221148 [details]
A screenshot of Spectacle prior to a crash.
Comment 2 Tobias C. Berner freebsd_committer freebsd_triage 2020-12-31 19:17:29 UTC
Moin moin 

I can confirm the crash.


mfg Tobias
Comment 3 Adriaan de Groot freebsd_committer freebsd_triage 2021-02-22 15:48:06 UTC
I get a fairly consistent bt like this

```
(lldb) bt
* thread #1, name = 'spectacle', stop reason = signal SIGBUS: hardware error
  * frame #0: 0x000000080246f67f libQt5Core.so.5`QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) + 735
    frame #1: 0x000000080246f287 libQt5Core.so.5`QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) + 295
    frame #2: 0x000000080d9455a2 libKF5kipiplugins.so.5.9.1`KIPIPlugins::KPImagesList::KPImagesList(QWidget*, int) + 3330
    frame #3: 0x000000081908bac3 kipiplugin_remotestorage.so`___lldb_unnamed_symbol106$$kipiplugin_remotestorage.so + 675
    frame #4: 0x0000000819088535 kipiplugin_remotestorage.so`___lldb_unnamed_symbol46$$kipiplugin_remotestorage.so + 101
    frame #5: 0x00000008190880c5 kipiplugin_remotestorage.so`___lldb_unnamed_symbol38$$kipiplugin_remotestorage.so + 293
    frame #6: 0x0000000802472b39 libQt5Core.so.5`___lldb_unnamed_symbol2439$$libQt5Core.so.5 + 1449
    frame #7: 0x0000000801292dfa libQt5Widgets.so.5`QAction::activate(QAction::ActionEvent) + 314
    frame #8: 0x000000080141557d libQt5Widgets.so.5`___lldb_unnamed_symbol1982$$libQt5Widgets.so.5 + 77
    frame #9: 0x0000000801412aab libQt5Widgets.so.5`___lldb_unnamed_symbol1958$$libQt5Widgets.so.5 + 555
    frame #10: 0x0000000801419e60 libQt5Widgets.so.5`QMenu::mouseReleaseEvent(QMouseEvent*) + 704
```

which carries on from where Graham's bt trails off (I think in mouseReleaseEvent). Just seeing that there's dynamic_cast<> in the code makes me think I can guess a reason (there was a similar problem in kleopatra).
Comment 4 Adriaan de Groot freebsd_committer freebsd_triage 2021-02-22 21:32:55 UTC
FWIW, I can also trigger the crash consistently with Export to Imageshack, again with a SIGBUS, so I think something **else** is messing up memory.
Comment 5 Adriaan de Groot freebsd_committer freebsd_triage 2021-04-20 10:47:49 UTC
Slightly more detailed bt

```
Thread 1 received signal SIGSEGV, Segmentation fault.
0x00000008002f50f6 in KIPI::PluginLoader::interface (this=0x804f27be0)
    at /zbigone/src/kde/invent/libkipi/src/pluginloader.cpp:382
382         return d->interface;
(gdb) bt
#0  0x00000008002f50f6 in KIPI::PluginLoader::interface() const (this=0x804f27be0)
    at /zbigone/src/kde/invent/libkipi/src/pluginloader.cpp:382
#1  0x000000080e5bd610 in KIPIPlugins::KPDialogBase::Private::Private() (this=0x804fb9100)
    at /zbigone/src/kde/invent/kipi-plugins/common/libkipiplugins/dialogs/kptooldialog.cpp:66
#2  KIPIPlugins::KPDialogBase::KPDialogBase(QDialog*) (this=0x807401fd0, dlg=0x807401fa0)
    at /zbigone/src/kde/invent/kipi-plugins/common/libkipiplugins/dialogs/kptooldialog.cpp:78
#3  KIPIPlugins::KPToolDialog::KPToolDialog(QWidget*) (this=0x807401fa0, parent=<optimized out>)
    at /zbigone/src/kde/invent/kipi-plugins/common/libkipiplugins/dialogs/kptooldialog.cpp:163
#4  0x0000000820f0139f in KIPIImageshackPlugin::ImageshackWindow::ImageshackWindow(QWidget*, KIPIImageshackPlugin::Imageshack*) (this=0x807401fa0, parent=0x804ad4090, imghack=0x8092cb8e0)
    at /zbigone/src/kde/invent/kipi-plugins/imageshack/imageshackwindow.cpp:75
#5  0x0000000820efd1df in KIPIImageshackPlugin::Plugin_Imageshack::slotExport() (this=0x8092cad40)
    at /zbigone/src/kde/invent/kipi-plugins/imageshack/plugin_imageshack.cpp:118
#6  0x0000000802672b59 in  () at /usr/local/lib/qt5/libQt5Core.so.5
#7  0x0000000801692dfa in QAction::activate(QAction::ActionEvent) () at /usr/local/lib/qt5/libQt5Widgets.so.5
```

This particular crash is with kderc-build built spectacle on frameworks main, whatever that is today.
Comment 6 commit-hook freebsd_committer freebsd_triage 2021-04-20 14:28:22 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b78f03b4ef2f26ef43581af81bcb274e7b32558b

commit b78f03b4ef2f26ef43581af81bcb274e7b32558b
Author:     Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2021-04-20 14:23:01 +0000
Commit:     Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2021-04-20 14:28:03 +0000

    graphics/spectacle: avoid crash with export-plugins

    This is upstream MR
            https://invent.kde.org/graphics/spectacle/-/merge_requests/61
    and avoids crashes when clicking almost any entry in the
    *export* menu.

    PR:             252313

 graphics/spectacle/Makefile                        |  1 +
 ...cf6b1b67519a1a4e82e69764da9e89716489.diff (new) | 52 ++++++++++++++++++++++
 2 files changed, 53 insertions(+)
Comment 7 commit-hook freebsd_committer freebsd_triage 2021-04-20 22:50:40 UTC
A commit in branch 2021Q2 references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d7bd94998c03f8c14d58b4f462ea8d58a00f5ee6

commit d7bd94998c03f8c14d58b4f462ea8d58a00f5ee6
Author:     Adriaan de Groot <adridg@FreeBSD.org>
AuthorDate: 2021-04-20 14:23:01 +0000
Commit:     Adriaan de Groot <adridg@FreeBSD.org>
CommitDate: 2021-04-20 22:49:35 +0000

    graphics/spectacle: avoid crash with export-plugins

    This is upstream MR
            https://invent.kde.org/graphics/spectacle/-/merge_requests/61
    and avoids crashes when clicking almost any entry in the
    *export* menu.

    PR:             252313

 graphics/spectacle/Makefile                        |  1 +
 ...cf6b1b67519a1a4e82e69764da9e89716489.diff (new) | 52 ++++++++++++++++++++++
 2 files changed, 53 insertions(+)