Summary: | Okular inconsistently crashes upon PDF form save. | ||
---|---|---|---|
Product: | [Applications] okular | Reporter: | Roke Julian Lockhart Beedell <4wy78uwh> |
Component: | general | Assignee: | Okular developers <okular-devel> |
Status: | CONFIRMED --- | ||
Severity: | crash | CC: | aacid, dpeets, kde, kdedev |
Priority: | NOR | Keywords: | drkonqi |
Version First Reported In: | 25.04.1 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
See Also: |
https://bugzilla.redhat.com/show_bug.cgi?id=2369810 https://bugs.kde.org/show_bug.cgi?id=477153 https://bugs.kde.org/show_bug.cgi?id=505177 |
||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | https://crash-reports.kde.org/organizations/kde/issues/191628/events/c4d0fc3bf56b461d934d8769ffa90b6a/ |
Description
Roke Julian Lockhart Beedell
2025-06-02 15:27:49 UTC
Can you try giving us a valgrind trace? (In reply to Albert Astals Cid from comment #1) I'm yet to use Valgrind. I presume that I can work it out, but do you know a way, that you would advise me to run it, for this? (I ask because I got some good pointers asking KDAB how to use Perf when I first used it.) *** Bug 505131 has been marked as a duplicate of this bug. *** This looks like the same thing as https://bugs.kde.org/show_bug.cgi?id=477153 but in Qt 6, rather than 5 (In reply to Roke Julian Lockhart Beedell from comment #0) I forgot to mention that, at least the second time this occurred, I very momentarily saw a modal stating that Okular was "unable to locate" followed by the absolute `file:` URI of the file. It didn't appear malformed, and the file path hadn't been modified before save. (In reply to TraceyC from comment #4) If https://bugs.kde.org/show_bug.cgi?id=477153#c5 applies here too, I can only provide the original file in direct message to the assignee, and solely if I know their full name. I'll the Okular developers keep a test file to hand, I can try to reproduce it on that, instead. ==1778421== Invalid read of size 8 ==1778421== at 0xF7E307C: Okular::Page::number() const (page.cpp:162) ==1778421== by 0xF7D32D0: Okular::EditFormButtonsCommand::EditFormButtonsCommand(Okular::DocumentPrivate*, int, QList<Okular::FormFieldButton*> const&, QList<bool> const&) (documentcommands.cpp:601) ==1778421== by 0xF771333: Okular::Document::editFormButtons(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&) (document.cpp:4042) ==1778421== by 0xF4DA5BA: QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<int, QList<Okular::FormFieldButton*> const&, QList<bool> const&>, void, void (Okular::Document::*)(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&)>::call(void (Okular::Document::*)(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&), Okular::Document*, void**) (qobjectdefs_impl.h:145) ==1778421== by 0xF4D85F1: void QtPrivate::FunctionPointer<void (Okular::Document::*)(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&)>::call<QtPrivate::List<int, QList<Okular::FormFieldButton*> const&, QList<bool> const&>, void>(void (Okular::Document::*)(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&), Okular::Document*, void**) (qobjectdefs_impl.h:182) ==1778421== by 0xF4D5FD8: QtPrivate::QCallableObject<void (Okular::Document::*)(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&), QtPrivate::List<int, QList<Okular::FormFieldButton*> const&, QList<bool> const&>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:553) ==1778421== by 0x63CF7CE: call (qobjectdefs_impl.h:469) ==1778421== by 0x63CF7CE: void doActivate<false>(QObject*, int, void**) (qobject.cpp:4086) ==1778421== by 0xF3AD35F: FormWidgetsController::formButtonsChangedByWidget(int, QList<Okular::FormFieldButton*> const&, QList<bool> const&) (moc_formwidgets.cpp:518) ==1778421== by 0xF4C6F6A: FormWidgetsController::slotButtonClicked(QAbstractButton*) (formwidgets.cpp:208) ==1778421== by 0xF4DA92C: QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QAbstractButton*>, void, void (FormWidgetsController::*)(QAbstractButton*)>::call(void (FormWidgetsController::*)(QAbstractButton*), FormWidgetsController*, void**) (qobjectdefs_impl.h:145) ==1778421== by 0xF4D8DE5: void QtPrivate::FunctionPointer<void (FormWidgetsController::*)(QAbstractButton*)>::call<QtPrivate::List<QAbstractButton*>, void>(void (FormWidgetsController::*)(QAbstractButton*), FormWidgetsController*, void**) (qobjectdefs_impl.h:182) ==1778421== by 0xF4D6830: QtPrivate::QCallableObject<void (FormWidgetsController::*)(QAbstractButton*), QtPrivate::List<QAbstractButton*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) (qobjectdefs_impl.h:553) ==1778421== Address 0x1a79d6d0 is 0 bytes inside a block of size 80 free'd ==1778421== at 0x484399B: operator delete(void*, unsigned long) (vg_replace_malloc.c:935) ==1778421== by 0xF790981: void qDeleteAll<QList<Okular::Page*>::const_iterator>(QList<Okular::Page*>::const_iterator, QList<Okular::Page*>::const_iterator) (qalgorithms.h:27) ==1778421== by 0xF787E56: void qDeleteAll<QList<Okular::Page*> >(QList<Okular::Page*> const&) (qalgorithms.h:35) ==1778421== by 0xF776CFE: Okular::Document::swapBackingFile(QString const&, QUrl const&) (document.cpp:5098) ==1778421== by 0xF42CB8F: Okular::Part::doOpenFile(QMimeType const&, QString const&, bool*) (part.cpp:1433) ==1778421== by 0xF42DC1C: Okular::Part::openFile() (part.cpp:1593) ==1778421== by 0x486F202: KParts::ReadOnlyPartPrivate::openLocalFile() (readonlypart.cpp:157) ==1778421== by 0x48702FF: KParts::ReadOnlyPart::openUrl(QUrl const&) (readonlypart.cpp:118) ==1778421== by 0xF42FA3C: Okular::Part::openUrl(QUrl const&, bool) (part.cpp:1819) ==1778421== by 0xF4366EE: Okular::Part::saveAs(QUrl const&, QFlags<Okular::Part::SaveAsFlag>) (part.cpp:2924) ==1778421== by 0xF4347B5: Okular::Part::saveAs(QUrl const&) (part.cpp:2636) ==1778421== by 0xF433C43: Okular::Part::saveFile() (part.cpp:2571) (In reply to Sune Vuorela from comment #7) > Can you try giving us a valgrind trace? I'll assume I'm no longer needed to generate one. Thanks, Sune. If you open this PDF form: https://tu-dresden.de/tu-dresden/universitaetskultur/diversitaet-inklusion/ressourcen/dateien/familienfreundlichkeit/antragsformular-auslandsfoerderung?lang=en then select options for the radio buttons on pages 4 and 5 (both!), it will crash on saving. Despite the brief popup saying that the file could not be found, it does actually save it; however, it can't save the contents of both radio buttons at once. It only saves the most recently clicked one. If you leave one set of radio buttons unselected, Okular will not crash. *** Bug 506057 has been marked as a duplicate of this bug. *** |