Summary: | Crash closing okular | ||
---|---|---|---|
Product: | [Applications] okular | Reporter: | Ron Willhoite <ronwilhoite> |
Component: | general | Assignee: | Okular developers <okular-devel> |
Status: | RESOLVED UPSTREAM | ||
Severity: | crash | ||
Priority: | NOR | ||
Version: | 0.12.1 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: | pdf that can crash okular when closed |
Description
Ron Willhoite
2011-03-18 14:35:21 UTC
Can you please try running okular in valgrind, e.g. valgrind okular path/to/my/file.pdf And attaching the output? (In reply to comment #1) > Can you please try running okular in valgrind, e.g. > > valgrind okular path/to/my/file.pdf > > And attaching the output? I found one of the pdfs that will consistently crash Okular, but this only happens when the pdf is opened in Okular via Firefox. I downloaded the pdf to run the valgrind command, and Okular does not crash when I close it. I ran 'valgrind firefox', opened the pdf from the site, and Okular crashed. Sorry I can't give a link to the site because it requires a login. Other pdfs on that site open, and close without crashing okular. Here is the valgrind output: ==23643== Memcheck, a memory error detector ==23643== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==23643== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==23643== Command: /usr/bin/firefox ==23643== ==23652== Warning: invalid file descriptor -1 in syscall close() ==23652== ==23652== HEAP SUMMARY: ==23652== in use at exit: 3,834 bytes in 76 blocks ==23652== total heap usage: 93 allocs, 17 frees, 6,594 bytes allocated ==23652== ==23652== LEAK SUMMARY: ==23652== definitely lost: 0 bytes in 0 blocks ==23652== indirectly lost: 0 bytes in 0 blocks ==23652== possibly lost: 508 bytes in 1 blocks ==23652== still reachable: 3,326 bytes in 75 blocks ==23652== suppressed: 0 bytes in 0 blocks ==23652== Rerun with --leak-check=full to see details of leaked memory ==23652== ==23652== For counts of detected and suppressed errors, rerun with: -v ==23652== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 13 from 8) ABP timeline: Entered Bootstrap.startup() (first event) ABP timeline: * done registering URL components (1) ABP timeline: * started initializing default modules (0) ABP timeline: * Entered Prefs.startup() (3) ABP timeline: * * done loading initial values (3) ABP timeline: * * registering observers (0) ABP timeline: * Prefs.startup() done (1) ABP timeline: * Entered FilterListener.startup() (44) ABP timeline: * * Entered ElemHide.init() (0) ABP timeline: * * * done adding prefs listener (1) ABP timeline: * * * done determining stylesheet URL (0) ABP timeline: * * * registering component (0) ABP timeline: * * ElemHide.init() done (0) ABP timeline: * * Loading cache file (1) ABP timeline: * * Done loading cache file (38) ABP timeline: * * Entered ElemHide.apply() (1) ABP timeline: * * * ElemHide.unapply() finished (0) ABP timeline: * * * start inserting stylesheet (0) ABP timeline: * * ElemHide.apply() done (469) ABP timeline: * * done initializing data structures (1) ABP timeline: * * done adding observers (0) ABP timeline: * FilterListener.startup() done (0) ABP timeline: * Entered ContentPolicy.startup() (0) ABP timeline: * * done initializing types (28) ABP timeline: * * registering global stylesheet (1) ABP timeline: * * done registering stylesheet (0) ABP timeline: * * registering component (0) ABP timeline: * ContentPolicy.startup() done (1) ABP timeline: * Entered Synchronizer.startup() (7) ABP timeline: * Synchronizer.startup() done (0) ABP timeline: * initializing additional modules (0) ABP timeline: Bootstrap.startup() done (0) ABP timeline: Total time elapsed: 600 ABP timeline: Entered delayed FilterStorage init (first event) ABP timeline: * Entered FilterStorage.loadFromDisk() (0) ABP timeline: * * done locating patterns.ini file (1) ABP timeline: * * done parsing file (490) ABP timeline: * * load complete, calling observers (0) ABP timeline: * FilterStorage.loadFromDisk() done (0) ABP timeline: * done loading file (0) ABP timeline: Delayed FilterStorage init done (0) ABP timeline: Total time elapsed: 491 Running global cleanup code from study base classes. Annotation Widget not supported. Annotation Widget not supported. [snipped several dozen of these lines] Annotation Widget not supported. Annotation Widget not supported. okular(23703)/kdeui (kdelibs): Attempt to use QAction "" with KXMLGUIFactory! KCrash: Application 'okular' crashing... KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/ronw/.kde/socket-ronmac/kdeinit4__0 ABP timeline: Entered Bootstrap.shutdown() (first event) ABP timeline: * Entered Prefs.shutdown() (0) ABP timeline: * Prefs.shutdown() done (0) ABP timeline: * Entered FilterListener.shutdown() (0) ABP timeline: * * Entered FilterStorage.saveToDisk() (0) ABP timeline: * * * created temp file (33) ABP timeline: * * * saved filter data (47) ABP timeline: * * * saved subscription data (30) ABP timeline: * * * finalized file write (165) ABP timeline: * * * created backups and renamed temp file (1) ABP timeline: * * FilterStorage.saveToDisk() done (0) ABP timeline: * FilterListener.shutdown() done (1) ABP timeline: Bootstrap.shutdown() done (0) ABP timeline: Total time elapsed: 277 NOTE: child process received `Goodbye', closing down Hmm, since you need to run it from firefox, can you please add --trace-children=yes to valgrind? that is, valgrind --trace-children=yes firefox And paste the output again? Interesting. It did not crash with the trace-children option. I ran it again, with just 'valgrind firefox', and it crashed again. Here is the valgrind output with trace-children. I copied from the point that I chose to open the pdf in okular within firefox: ==24125== Memcheck, a memory error detector ==24125== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==24125== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==24125== Command: /bin/sh -c test\ "$DISPLAY"\ !=\ "" ==24125== ==24125== ==24125== HEAP SUMMARY: ==24125== in use at exit: 1,194 bytes in 75 blocks ==24125== total heap usage: 76 allocs, 1 frees, 1,246 bytes allocated ==24125== ==24125== LEAK SUMMARY: ==24125== definitely lost: 0 bytes in 0 blocks ==24125== indirectly lost: 0 bytes in 0 blocks ==24125== possibly lost: 0 bytes in 0 blocks ==24125== still reachable: 1,194 bytes in 75 blocks ==24125== suppressed: 0 bytes in 0 blocks ==24125== Rerun with --leak-check=full to see details of leaked memory ==24125== ==24125== For counts of detected and suppressed errors, rerun with: -v ==24125== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 11 from 6) ==24128== Memcheck, a memory error detector ==24128== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al. ==24128== Using Valgrind-3.6.0.SVN-Debian and LibVEX; rerun with -h for copyright info ==24128== Command: /usr/bin/okular /tmp/i-918-2010-11-23.pdf ==24128== ==24128== Conditional jump or move depends on uninitialised value(s) ==24128== at 0x616E611: inflateReset2 (in /lib/libz.so.1.2.3.4) ==24128== by 0x616E6EC: inflateInit2_ (in /lib/libz.so.1.2.3.4) ==24128== by 0x616E762: inflateInit_ (in /lib/libz.so.1.2.3.4) ==24128== by 0x6152F13: png_create_read_struct_2 (in /lib/libpng12.so.0.44.0) ==24128== by 0x61530F9: png_create_read_struct (in /lib/libpng12.so.0.44.0) ==24128== by 0x4955A53: QPngHandlerPrivate::readPngHeader() (qpnghandler.cpp:356) ==24128== by 0x495648A: QPngHandlerPrivate::readPngImage(QImage*) (qpnghandler.cpp:427) ==24128== by 0x491E23B: QImageReader::read(QImage*) (qimagereader.cpp:1205) ==24128== by 0x491E876: QImageReader::read() (qimagereader.cpp:1155) ==24128== by 0x490CDB0: operator>>(QDataStream&, QImage&) (qimage.cpp:5149) ==24128== by 0x492FC93: operator>>(QDataStream&, QPixmap&) (qpixmap.cpp:1315) ==24128== by 0x44B589F: KIconLoaderPrivate::findCachedPixmapWithPath(QString const&, QPixmap&, QString&) (kiconloader.cpp:884) ==24128== Annotation Widget not supported. [snipped repeated lines] Annotation Widget not supported. ==24128== Conditional jump or move depends on uninitialised value(s) ==24128== at 0x616E611: inflateReset2 (in /lib/libz.so.1.2.3.4) ==24128== by 0x616E6EC: inflateInit2_ (in /lib/libz.so.1.2.3.4) ==24128== by 0x6168A46: ??? (in /lib/libz.so.1.2.3.4) ==24128== by 0xD14008C: __synctex_open (synctex_parser.c:2591) ==24128== by 0xD1402A3: _synctex_open (synctex_parser.c:2662) ==24128== by 0xD1443ED: synctex_scanner_new_with_output_file (synctex_parser.c:2508) ==24128== by 0xD130294: PDFGenerator::initSynctexParser(QString const&) (generator_pdf.cpp:1481) ==24128== by 0xD137966: PDFGenerator::loadDocument(QString const&, QVector<Okular::Page*>&) (generator_pdf.cpp:336) ==24128== by 0xA01AB4E: Okular::DocumentPrivate::openDocumentInternal(KSharedPtr<KService> const&, bool, QString const&, QByteArray const&) (document.cpp:674) ==24128== by 0xA0216EE: Okular::Document::openDocument(QString const&, KUrl const&, KSharedPtr<KMimeType> const&) (document.cpp:1632) ==24128== by 0x9F15A6A: Okular::Part::openFile() (part.cpp:955) ==24128== by 0x4057363: KParts::ReadOnlyPartPrivate::openLocalFile() (part.cpp:592) ==24128== ==24128== Conditional jump or move depends on uninitialised value(s) ==24128== at 0x616E611: inflateReset2 (in /lib/libz.so.1.2.3.4) ==24128== by 0x616E6EC: inflateInit2_ (in /lib/libz.so.1.2.3.4) ==24128== by 0x6168A46: ??? (in /lib/libz.so.1.2.3.4) ==24128== by 0xD140234: __synctex_open (synctex_parser.c:2610) ==24128== by 0xD1402A3: _synctex_open (synctex_parser.c:2662) ==24128== by 0xD1443ED: synctex_scanner_new_with_output_file (synctex_parser.c:2508) ==24128== by 0xD130294: PDFGenerator::initSynctexParser(QString const&) (generator_pdf.cpp:1481) ==24128== by 0xD137966: PDFGenerator::loadDocument(QString const&, QVector<Okular::Page*>&) (generator_pdf.cpp:336) ==24128== by 0xA01AB4E: Okular::DocumentPrivate::openDocumentInternal(KSharedPtr<KService> const&, bool, QString const&, QByteArray const&) (document.cpp:674) ==24128== by 0xA0216EE: Okular::Document::openDocument(QString const&, KUrl const&, KSharedPtr<KMimeType> const&) (document.cpp:1632) ==24128== by 0x9F15A6A: Okular::Part::openFile() (part.cpp:955) ==24128== by 0x4057363: KParts::ReadOnlyPartPrivate::openLocalFile() (part.cpp:592) ==24128== okular(24128)/kdeui (kdelibs): Attempt to use QAction "" with KXMLGUIFactory! ==24128== Conditional jump or move depends on uninitialised value(s) ==24128== at 0x9F5FCBF: PageView::resizeEvent(QResizeEvent*) (pageview.cpp:1255) ==24128== by 0x4890C52: QWidget::event(QEvent*) (qwidget.cpp:8341) ==24128== by 0x4CB2762: QFrame::event(QEvent*) (qframe.cpp:557) ==24128== by 0x4D4FA81: QAbstractScrollArea::viewportEvent(QEvent*) (qabstractscrollarea.cpp:1043) ==24128== by 0x9F6694F: PageView::viewportEvent(QEvent*) (pageview.cpp:2319) ==24128== by 0x4D524D4: QAbstractScrollAreaFilter::eventFilter(QObject*, QEvent*) (qabstractscrollarea_p.h:100) ==24128== by 0x55DB299: QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) (qcoreapplication.cpp:847) ==24128== by 0x4832FB8: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4392) ==24128== by 0x48390E8: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4361) ==24128== by 0x45187D9: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:311) ==24128== by 0x55DBB3A: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:732) ==24128== by 0x48E8E70: QWidgetPrivate::setGeometry_sys(int, int, int, int, bool) (qcoreapplication.h:215) ==24128== ==24128== Invalid read of size 4 ==24128== at 0xD2DF085: GooString::~GooString() (GooString.cc:240) ==24128== by 0xD29BA8E: Object::free() (Object.cc:126) ==24128== by 0xD236444: NameTree::Entry::~Entry() (Catalog.cc:525) ==24128== by 0xD2364F9: NameTree::~NameTree() (Catalog.cc:506) ==24128== by 0xD236659: Catalog::~Catalog() (Catalog.cc:178) ==24128== by 0xD2A3BA2: PDFDoc::~PDFDoc() (PDFDoc.cc:241) ==24128== by 0xD168350: Poppler::Document::~Document() (poppler-private.h:116) ==24128== by 0xD12FB35: PDFGenerator::doCloseDocument() (generator_pdf.cpp:448) ==24128== by 0xA03079E: Okular::Generator::closeDocument() (generator.cpp:203) ==24128== by 0xA01D676: Okular::Document::closeDocument() (document.cpp:1782) ==24128== by 0x9F08BAC: Okular::Part::closeUrl() (part.cpp:1136) ==24128== by 0x9F09147: Okular::Part::~Part() (part.cpp:651) ==24128== Address 0x9b68ec4 is 0 bytes after a block of size 28 free'd ==24128== at 0x40257ED: free (vg_replace_malloc.c:366) ==24128== by 0x54D3FEC: qFree(void*) (qmalloc.cpp:60) ==24128== by 0x550888C: QMapData::continueFreeData(int) (qmap.cpp:93) ==24128== by 0x5249F05: QMap<KEntryKey, KEntry>::freeData(QMapData*) (qmap.h:653) ==24128== by 0x525B3BF: KConfigIniBackend::writeConfig(QByteArray const&, KEntryMap&, QFlags<KConfigBackend::WriteOption>, KComponentData const&) (qmap.h:187) ==24128== by 0x52449DF: KConfig::sync() (kconfig.cpp:379) ==24128== by 0x805036F: Shell::writeSettings() (shell.cpp:172) ==24128== by 0x8050442: Shell::~Shell() (shell.cpp:121) ==24128== by 0x55EC9A4: qDeleteInEventHandler(QObject*) (qobject.cpp:3988) ==24128== by 0x55EE6C7: QObject::event(QEvent*) (qobject.cpp:1202) ==24128== by 0x4890935: QWidget::event(QEvent*) (qwidget.cpp:8646) ==24128== by 0x4CD1916: QMainWindow::event(QEvent*) (qmainwindow.cpp:1417) ==24128== ==24128== Invalid free() / delete / delete[] ==24128== at 0x4025504: operator delete(void*) (vg_replace_malloc.c:387) ==24128== by 0xD29BA96: Object::free() (Object.cc:126) ==24128== by 0xD236444: NameTree::Entry::~Entry() (Catalog.cc:525) ==24128== by 0xD2364F9: NameTree::~NameTree() (Catalog.cc:506) ==24128== by 0xD236659: Catalog::~Catalog() (Catalog.cc:178) ==24128== by 0xD2A3BA2: PDFDoc::~PDFDoc() (PDFDoc.cc:241) ==24128== by 0xD168350: Poppler::Document::~Document() (poppler-private.h:116) ==24128== by 0xD12FB35: PDFGenerator::doCloseDocument() (generator_pdf.cpp:448) ==24128== by 0xA03079E: Okular::Generator::closeDocument() (generator.cpp:203) ==24128== by 0xA01D676: Okular::Document::closeDocument() (document.cpp:1782) ==24128== by 0x9F08BAC: Okular::Part::closeUrl() (part.cpp:1136) ==24128== by 0x9F09147: Okular::Part::~Part() (part.cpp:651) ==24128== Address 0x9b68ea8 is 0 bytes inside a block of size 28 free'd ==24128== at 0x40257ED: free (vg_replace_malloc.c:366) ==24128== by 0x54D3FEC: qFree(void*) (qmalloc.cpp:60) ==24128== by 0x550888C: QMapData::continueFreeData(int) (qmap.cpp:93) ==24128== by 0x5249F05: QMap<KEntryKey, KEntry>::freeData(QMapData*) (qmap.h:653) ==24128== by 0x525B3BF: KConfigIniBackend::writeConfig(QByteArray const&, KEntryMap&, QFlags<KConfigBackend::WriteOption>, KComponentData const&) (qmap.h:187) ==24128== by 0x52449DF: KConfig::sync() (kconfig.cpp:379) ==24128== by 0x805036F: Shell::writeSettings() (shell.cpp:172) ==24128== by 0x8050442: Shell::~Shell() (shell.cpp:121) ==24128== by 0x55EC9A4: qDeleteInEventHandler(QObject*) (qobject.cpp:3988) ==24128== by 0x55EE6C7: QObject::event(QEvent*) (qobject.cpp:1202) ==24128== by 0x4890935: QWidget::event(QEvent*) (qwidget.cpp:8646) ==24128== by 0x4CD1916: QMainWindow::event(QEvent*) (qmainwindow.cpp:1417) ==24128== okular(24128)/kdeui (kdelibs) KXMLGUIClient::~KXMLGUIClient: 0x9bcd028 deleted without having been removed from the factory first. This will leak standalone popupmenus and could lead to crashes. ==24128== ==24128== HEAP SUMMARY: ==24128== in use at exit: 574,452 bytes in 6,519 blocks ==24128== total heap usage: 862,065 allocs, 855,547 frees, 264,462,055 bytes allocated ==24128== ==24128== LEAK SUMMARY: ==24128== definitely lost: 648 bytes in 8 blocks ==24128== indirectly lost: 338,019 bytes in 3,413 blocks ==24128== possibly lost: 89,888 bytes in 785 blocks ==24128== still reachable: 145,897 bytes in 2,313 blocks ==24128== suppressed: 0 bytes in 0 blocks ==24128== Rerun with --leak-check=full to see details of leaked memory ==24128== ==24128== For counts of detected and suppressed errors, rerun with: -v ==24128== Use --track-origins=yes to see where uninitialised values come from ==24128== ERROR SUMMARY: 27 errors from 6 contexts (suppressed: 257 from 12) ABP timeline: Entered Bootstrap.shutdown() (first event) ABP timeline: * Entered Prefs.shutdown() (2) ABP timeline: * Prefs.shutdown() done (1) ABP timeline: * Entered FilterListener.shutdown() (1) ABP timeline: * * Entered FilterStorage.saveToDisk() (1) ABP timeline: * * * created temp file (712) ABP timeline: * * * saved filter data (1849) ABP timeline: * * * saved subscription data (1225) ABP timeline: * * * finalized file write (136) ABP timeline: * * * created backups and renamed temp file (7) ABP timeline: * * FilterStorage.saveToDisk() done (1) ABP timeline: * FilterListener.shutdown() done (3) ABP timeline: Bootstrap.shutdown() done (1) ABP timeline: Total time elapsed: 3940 ==24030== ==24030== HEAP SUMMARY: ==24030== in use at exit: 257 bytes in 3 blocks ==24030== total heap usage: 397 allocs, 394 frees, 63,875 bytes allocated ==24030== ==24030== LEAK SUMMARY: ==24030== definitely lost: 0 bytes in 0 blocks ==24030== indirectly lost: 0 bytes in 0 blocks ==24030== possibly lost: 249 bytes in 2 blocks ==24030== still reachable: 8 bytes in 1 blocks ==24030== suppressed: 0 bytes in 0 blocks ==24030== Rerun with --leak-check=full to see details of leaked memory ==24030== ==24030== For counts of detected and suppressed errors, rerun with: -v ==24030== ERROR SUMMARY: 18 errors from 1 contexts (suppressed: 199 from 11) If it's relevant: I went to the site using Chromium. Okular crashed on exit, like with Firefox. Rekonq also crashes after viewing the pdf on the site. I viewed it 'within' rekonq, but I suspect rekonq is using okular. Can we have that pdf file you are using to crash okular? Created attachment 59446 [details]
pdf that can crash okular when closed
(In reply to comment #6) > Can we have that pdf file you are using to crash okular? Added as an attachment to the bug report. This is actually a bug in poppler, it will be fixed in poppler 0.16.6 or 0.18.0 whatever comes first, thanks for reporting. |