Bug 308160

Summary: Okular crashed on printig postscript file
Product: [Applications] okular Reporter: Manuel <manuel.neumann>
Component: generalAssignee: Okular developers <okular-devel>
Status: RESOLVED FIXED    
Severity: crash CC: aacid
Priority: NOR    
Version: 0.14.3   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In: 4.9.3
Sentry Crash Report:
Attachments: Source of the crash.

Description Manuel 2012-10-10 06:26:17 UTC
Application: okular (0.14.3)
KDE Platform Version: 4.8.5 (4.8.5) "release 2"
Qt Version: 4.8.3
Operating System: Linux 3.4.6-2.10-desktop x86_64
Distribution: "openSUSE 12.2 (x86_64)"

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

Reading an .ps file. Okular crashed after sending a print job.

-- Backtrace:
Application: Okular (okular), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f1448cca780 (LWP 26763))]

Thread 4 (Thread 0x7f1432d51700 (LWP 26769)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f14467ce4fb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f14467ca407 in QSemaphore::acquire(int) () from /usr/lib64/libQtCore.so.4
#3  0x00007f1435918eb0 in GSRendererThread::run (this=0x1ba5c30) at /usr/src/debug/okular-4.8.5/generators/spectre/rendererthread.cpp:50
#4  0x00007f14467cdf9c in ?? () from /usr/lib64/libQtCore.so.4
#5  0x00007f1443e4ee0e in start_thread (arg=0x7f1432d51700) at pthread_create.c:305
#6  0x00007f1445f072bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7f1431662700 (LWP 27440)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f14467ce4fb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f14477b4986 in QFileInfoGatherer::run (this=0x2c01630) at dialogs/qfileinfogatherer.cpp:214
#3  0x00007f14467cdf9c in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f1443e4ee0e in start_thread (arg=0x7f1431662700) at pthread_create.c:305
#5  0x00007f1445f072bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f1430e61700 (LWP 27441)):
#0  0x00007f1445eff13f in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f1442925ae4 in g_main_context_iterate.isra.24 () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f1442925c04 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f14468f7cf6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#4  0x00007f14468c885f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#5  0x00007f14468c8ae8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#6  0x00007f14467cafc0 in QThread::exec() () from /usr/lib64/libQtCore.so.4
#7  0x00007f14468a8fcf in ?? () from /usr/lib64/libQtCore.so.4
#8  0x00007f14467cdf9c in ?? () from /usr/lib64/libQtCore.so.4
#9  0x00007f1443e4ee0e in start_thread (arg=0x7f1430e61700) at pthread_create.c:305
#10 0x00007f1445f072bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f1448cca780 (LWP 26763)):
[KCrash Handler]
#5  __GI_rewind (fp=fp@entry=0x0) at rewind.c:36
#6  0x00007f14356fdc9b in ps_io_init (file=0x0) at ps.c:1464
#7  0x00007f14357023a6 in pscopytrailer (from=<optimized out>, to=0x0, d=0x1d0a100, n_pages=0) at ps.c:2068
#8  0x00007f14356fd2c7 in spectre_exporter_ps_end (exporter=0x2d41030) at spectre-exporter-ps.c:61
#9  0x00007f1435917c6f in GSGenerator::print (this=0x1be6930, printer=...) at /usr/src/debug/okular-4.8.5/generators/spectre/generator_ghostview.cpp:138
#10 0x00007f143994c19e in doPrint (printer=..., this=0x1a86250) at /usr/src/debug/okular-4.8.5/part.cpp:2373
#11 Okular::Part::doPrint (this=0x1a86250, printer=...) at /usr/src/debug/okular-4.8.5/part.cpp:2365
#12 0x00007f1439956dad in Okular::Part::slotPrint (this=0x1a86250) at /usr/src/debug/okular-4.8.5/part.cpp:2342
#13 0x00007f14399572aa in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at /usr/src/debug/okular-4.8.5/build/part.moc:229
#14 Okular::Part::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /usr/src/debug/okular-4.8.5/build/part.moc:159
#15 0x00007f14468e039f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#16 0x00007f14472c3542 in QAction::triggered (this=this@entry=0x1bbe310, _t1=false) at .moc/release-shared/moc_qaction.cpp:277
#17 0x00007f14472c3730 in QAction::activate (this=0x1bbe310, event=<optimized out>) at kernel/qaction.cpp:1257
#18 0x00007f14476fcdc3 in QMenuPrivate::activateCausedStack (this=this@entry=0x1d237c0, causedStack=..., action=action@entry=0x1bbe310, action_e=action_e@entry=QAction::Trigger, self=self@entry=true) at widgets/qmenu.cpp:1028
#19 0x00007f14477030d9 in QMenuPrivate::activateAction (this=0x1d237c0, action=0x1bbe310, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1120
#20 0x00007f1448094fd0 in KMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/libkdeui.so.5
#21 0x00007f1447318ed0 in QWidget::event (this=0x1c0e200, event=0x7fff4e7d7950) at kernel/qwidget.cpp:8371
#22 0x00007f144770438b in QMenu::event (this=0x1c0e200, e=0x7fff4e7d7950) at widgets/qmenu.cpp:2469
#23 0x00007f14472c974c in QApplicationPrivate::notify_helper (this=this@entry=0x18ef020, receiver=receiver@entry=0x1c0e200, e=e@entry=0x7fff4e7d7950) at kernel/qapplication.cpp:4557
#24 0x00007f14472ce42b in QApplication::notify (this=<optimized out>, receiver=0x1c0e200, e=0x7fff4e7d7950) at kernel/qapplication.cpp:4100
#25 0x00007f1447fdc006 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#26 0x00007f14468c9b0e in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#27 0x00007f14472ca58b in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:231
#28 QApplicationPrivate::sendMouseEvent (receiver=0x1c0e200, event=0x7fff4e7d7950, alienWidget=0x0, nativeWidget=0x1c0e200, buttonDown=0x7f1447d9d248 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3168
#29 0x00007f1447344bdc in QETWidget::translateMouseEvent (this=this@entry=0x1c0e200, event=event@entry=0x7fff4e7d80c0) at kernel/qapplication_x11.cpp:4452
#30 0x00007f1447343aa1 in QApplication::x11ProcessEvent (this=0x7fff4e7d86e0, event=0x7fff4e7d80c0) at kernel/qapplication_x11.cpp:3641
#31 0x00007f1447369de2 in x11EventSourceDispatch (s=0x18ecf70, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#32 0x00007f1442925815 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#33 0x00007f1442925b48 in g_main_context_iterate.isra.24 () from /usr/lib64/libglib-2.0.so.0
#34 0x00007f1442925c04 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#35 0x00007f14468f7cd6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#36 0x00007f1447369a5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#37 0x00007f14468c885f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#38 0x00007f14468c8ae8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#39 0x00007f14468cd788 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#40 0x000000000040824e in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/okular-4.8.5/shell/main.cpp:85

Reported using DrKonqi
Comment 1 Albert Astals Cid 2012-10-10 07:08:41 UTC
Please attach the ps file that caused the crash
Comment 2 Manuel 2012-10-10 07:15:56 UTC
Created attachment 74452 [details]
Source of the crash.
Comment 3 Albert Astals Cid 2012-10-10 07:28:35 UTC
Does doing just a print preview crash?
Comment 4 Manuel 2012-10-10 07:55:21 UTC
(In reply to comment #3)
> Does doing just a print preview crash?

No.
Comment 5 Albert Astals Cid 2012-10-10 17:18:34 UTC
Can you describe in a clear step by step way what you did from opening okular to the crash?
Comment 6 Manuel 2012-10-11 05:55:40 UTC
(In reply to comment #5)
> Can you describe in a clear step by step way what you did from opening
> okular to the crash?


Opening the file from Firefox. 
Click on File->Print->[Selected printer]->Print.

But it was not reproducible.
Comment 7 Albert Astals Cid 2012-10-14 20:30:28 UTC
Git commit a0c398ea07090cfe2e8517f1a13c60789c444000 by Albert Astals Cid.
Committed on 14/10/2012 at 22:28.
Pushed by aacid into branch 'KDE/4.9'.

Only spectre_exporter_end if everything was successful

Otherwise we might end up crashing, of course this does not solve
why this error happened, but better getting an error saying something failed
than a crash .-)
FIXED-IN: 4.9.3

M  +3    -1    generators/spectre/generator_ghostview.cpp

http://commits.kde.org/okular/a0c398ea07090cfe2e8517f1a13c60789c444000