Bug 335413 - Okular crashed when closing one (out of two) instances
Summary: Okular crashed when closing one (out of two) instances
Status: RESOLVED FIXED
Alias: None
Product: okular
Classification: Applications
Component: general (show other bugs)
Version: 0.19.1
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2014-05-27 12:49 UTC by Maarten Bezemer
Modified: 2014-06-17 22:33 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Maarten Bezemer 2014-05-27 12:49:08 UTC
Application: okular (0.19.1)
KDE Platform Version: 4.13.1
Qt Version: 4.8.6
Operating System: Linux 3.13.0-24-generic x86_64
Distribution: Ubuntu 14.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:

With 2 okular instances opened (one with a 'unique' instance (it does not allow other tabbed documents) and the other as a 'regular' instance), I closed the'regular' instance and okular crashed (the 'unique' instance was lost afterwards as well)
The 'unique' instance contained my LaTeX output/PDF, but I do not think it was being rebuild (and thus reloaded at the same time).

-- Backtrace:
Application: Okular (okular), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f29c5ac37c0 (LWP 11862))]

Thread 2 (Thread 0x7f29a7b8e700 (LWP 11890)):
#0  0x00007f29bf6fb62a in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f29bf6fb9b9 in g_mutex_unlock () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f29bf6b98f9 in g_main_context_query () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f29bf6b9f52 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f29bf6ba0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f29c34d27be in QEventDispatcherGlib::processEvents (this=0x7f299c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:436
#6  0x00007f29c34a40af in QEventLoop::processEvents (this=this@entry=0x7f29a7b8dde0, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f29c34a43a5 in QEventLoop::exec (this=this@entry=0x7f29a7b8dde0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f29c33a0c5f in QThread::exec (this=this@entry=0x1087040) at thread/qthread.cpp:537
#9  0x00007f29c3485823 in QInotifyFileSystemWatcherEngine::run (this=0x1087040) at io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007f29c33a332f in QThreadPrivate::start (arg=0x1087040) at thread/qthread_unix.cpp:349
#11 0x00007f29bfb99182 in start_thread (arg=0x7f29a7b8e700) at pthread_create.c:312
#12 0x00007f29c2ade30d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f29c5ac37c0 (LWP 11862)):
[KCrash Handler]
#6  XRef::getNumEntry (this=0x0, offset=-1) at XRef.cc:1300
#7  0x00007f29aec1681e in Lexer::getObj (this=0x1648760, obj=obj@entry=0x1bdf978, cmdA=cmdA@entry=0x7f29aeca66c8 "endstream", objNum=objNum@entry=0) at Lexer.cc:594
#8  0x00007f29aec20dfd in Parser::shift (this=this@entry=0x1bdf950, cmdA=cmdA@entry=0x7f29aeca66c8 "endstream", objNum=objNum@entry=0) at Parser.cc:323
#9  0x00007f29aec20fde in Parser::makeStream (this=this@entry=0x1bdf950, dict=dict@entry=0x7fff2541cad0, fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptRC4, keyLength=keyLength@entry=0, objNum=objNum@entry=0, objGen=objGen@entry=0, recursion=recursion@entry=1, strict=strict@entry=false) at Parser.cc:245
#10 0x00007f29aec216b8 in Parser::getObj (this=this@entry=0x1bdf950, obj=obj@entry=0x7fff2541cad0, simpleOnly=simpleOnly@entry=false, fileKey=fileKey@entry=0x0, encAlgorithm=encAlgorithm@entry=cryptRC4, keyLength=keyLength@entry=0, objNum=objNum@entry=0, objGen=objGen@entry=0, recursion=recursion@entry=0, strict=strict@entry=false) at Parser.cc:131
#11 0x00007f29aec350fc in XRef::readXRef (this=this@entry=0xfe43a0, pos=pos@entry=0xfe4438, followedXRefStm=followedXRefStm@entry=0x7fff2541cb30, xrefStreamObjsNum=xrefStreamObjsNum@entry=0x0) at XRef.cc:551
#12 0x00007f29aec35319 in XRef::XRef (this=0xfe43a0, strA=0x1c54ff0, pos=<optimized out>, mainXRefEntriesOffsetA=0, wasReconstructed=0x7fff2541cbaf, reconstruct=<optimized out>) at XRef.cc:342
#13 0x00007f29aec2534f in PDFDoc::setup (this=this@entry=0x311e1b0, ownerPassword=ownerPassword@entry=0x1165830, userPassword=userPassword@entry=0x447f550) at PDFDoc.cc:262
#14 0x00007f29aec25578 in PDFDoc::PDFDoc (this=0x311e1b0, fileNameA=<optimized out>, ownerPassword=0x1165830, userPassword=0x447f550, guiDataA=<optimized out>) at PDFDoc.cc:167
#15 0x00007f29aef64d99 in DocumentData (userPassword=0x447f550, ownerPassword=0x1165830, filePath=..., this=0x15f0a00) at poppler-private.h:94
#16 Poppler::Document::load (filePath=..., ownerPassword=..., userPassword=...) at poppler-document.cc:62
#17 0x00007f29af1dbd83 in PDFGenerator::loadDocument (this=0xe4ce00, filePath=..., pagesVector=...) at ../../../generators/poppler/generator_pdf.cpp:466
#18 0x00007f29b3789449 in Okular::DocumentPrivate::openDocumentInternal (this=0x9819e0, offer=..., isstdin=isstdin@entry=false, docFile=..., filedata=...) at ../core/document.cpp:944
#19 0x00007f29b3789915 in Okular::Document::openDocument (this=0x96c4c0, docFile=..., url=..., _mime=...) at ../core/document.cpp:2225
#20 0x00007f29b3a4ccac in Okular::Part::openFile (this=0x8f3d00) at ../part.cpp:1242
#21 0x00007f29c56b0c47 in KParts::ReadOnlyPartPrivate::openLocalFile (this=this@entry=0x8f3fd0) at ../../kparts/part.cpp:591
#22 0x00007f29c56b222e in KParts::ReadOnlyPart::openUrl (this=this@entry=0x8f3d00, url=...) at ../../kparts/part.cpp:555
#23 0x00007f29b3a427a3 in Okular::Part::slotDoFileDirty (this=0x8f3d00) at ../part.cpp:1645
#24 0x00007f29b3a4d5a5 in Okular::Part::qt_static_metacall (_o=0x0, _id=-1, _a=0x7fff2541d2f0, _c=<optimized out>) at ./part.moc:247
#25 0x00007f29c34b987a in QMetaObject::activate (sender=0xd0eeb0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3539
#26 0x00007f29c34bda31 in QObject::event (this=0xd0eeb0, e=<optimized out>) at kernel/qobject.cpp:1156
#27 0x00007f29c3e97e2c in QApplicationPrivate::notify_helper (this=this@entry=0x7723d0, receiver=receiver@entry=0xd0eeb0, e=e@entry=0x7fff2541d6f0) at kernel/qapplication.cpp:4567
#28 0x00007f29c3e9e4a0 in QApplication::notify (this=this@entry=0x7fff2541db00, receiver=receiver@entry=0xd0eeb0, e=e@entry=0x7fff2541d6f0) at kernel/qapplication.cpp:4353
#29 0x00007f29c4ba2d1a in KApplication::notify (this=0x7fff2541db00, receiver=0xd0eeb0, event=0x7fff2541d6f0) at ../../kdeui/kernel/kapplication.cpp:311
#30 0x00007f29c34a54dd in QCoreApplication::notifyInternal (this=0x7fff2541db00, receiver=0xd0eeb0, event=0x7fff2541d6f0) at kernel/qcoreapplication.cpp:953
#31 0x00007f29c34d5323 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#32 QTimerInfoList::activateTimers (this=0x7743a0) at kernel/qeventdispatcher_unix.cpp:621
#33 0x00007f29c34d25f1 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:193
#34 0x00007f29bf6b9e04 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#35 0x00007f29bf6ba048 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f29bf6ba0ec in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f29c34d27a1 in QEventDispatcherGlib::processEvents (this=0x770850, flags=...) at kernel/qeventdispatcher_glib.cpp:434
#38 0x00007f29c3f39bb6 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#39 0x00007f29c34a40af in QEventLoop::processEvents (this=this@entry=0x7fff2541d960, flags=...) at kernel/qeventloop.cpp:149
#40 0x00007f29c34a43a5 in QEventLoop::exec (this=this@entry=0x7fff2541d960, flags=...) at kernel/qeventloop.cpp:204
#41 0x00007f29c34a9b79 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1225
#42 0x00007f29c3e9637c in QApplication::exec () at kernel/qapplication.cpp:3828
#43 0x00000000004099c6 in main (argc=<optimized out>, argv=<optimized out>) at ../../shell/main.cpp:174

Reported using DrKonqi
Comment 1 Albert Astals Cid 2014-06-17 22:33:40 UTC
Actually it was trying to reload the file as you can see from  Okular::Part::slotDoFileDirty and it hit a bug in poppler, the pdf rendering library we use, i've fixed that bug and will be released with the next poppler version. http://cgit.freedesktop.org/poppler/poppler/commit/?h=poppler-0.26&id=310fbeec692b02d555e3e8dd6c851be11b25e26a