Bug 295504

Summary: crash printing to pdf format
Product: [Applications] okular Reporter: Russell Ham <RussellHam>
Component: PS backendAssignee: Okular developers <okular-devel>
Status: RESOLVED UPSTREAM    
Severity: crash CC: aacid, urkud
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:

Description Russell Ham 2012-03-08 03:52:03 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2
Build Identifier: 

Crashes printing hand-crafted Postscript envelope file to PDF format

Worked before most recent update

Reproducible: Always

Steps to Reproduce:
1. open PS file
2.select File/Print: Printer Name: Print to File(PDF)
3.select Properties:Page
Actual Results:  
Crash Reporting Assistant crashes with Unhandled Bugzilla Error when trying to log in to report error(!!?).





Expected Results:  
Previous versions created a PDF which could be printed on another computer.


--------------------entire PS input:
%!PS


<</PageSize [677 302]
  /ManualFeed true>>setpagedevice
  
/Helvetica 11 selectfont

40 260 moveto (My Name)show
40 247 moveto (My Address)show
40 234 moveto (My City, State, Postcode)show

/Helvetica 13 selectfont

240 160 moveto (CORSAIR MEMORY)show
240 140 moveto (DEPT CM 12-904)show
240 120 moveto (PO BOX 540027)show
240 100 moveto (EL PASO TX 88554-0027)show
showpage

--------Head of backtrace: ----------------------------------------------------
Application: okular (0.13.2)
KDE Platform Version: 4.7.2 (4.7.2) "release 5"
Qt Version: 4.7.4
Operating System: Linux 3.1.9-1.4-desktop x86_64
Distribution: "openSUSE 12.1 (x86_64)"

-- Information about the crash:
<In detail, tell us what you were doing  when the application crashed.>

Printing to PDF file

The crash can be reproduced every time.

-- Backtrace:
Application: Okular (okular), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f038e616760 (LWP 30606))]

Thread 4 (Thread 0x7f0377fea700 (LWP 30607)):
#0  0x00007f03897ace6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f038c11c4bb in wait (time=18446744073709551615, this=0x9ff710) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0xa06ae0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f038c118ef5 in QSemaphore::acquire (this=0xa25ec0, n=1) at thread/qsemaphore.cpp:144
#4  0x00007f037b2bfb6f in GSRendererThread::run (this=0xa25eb0) at /usr/src/debug/okular-4.7.2/generators/spectre/rendererthread.cpp:50
#5  0x00007f038c11c025 in QThreadPrivate::start (arg=0xa25eb0) at thread/qthread_unix.cpp:331
#6  0x00007f03897a8f05 in start_thread () from /lib64/libpthread.so.0
#7  0x00007f038b86963d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f037701f700 (LWP 30610)):
#0  0x00007f03897ace6c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f038c11c4bb in wait (time=18446744073709551615, this=0xaec390) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<optimized out>, mutex=0xaebd68, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007f038d0cb554 in QFileInfoGatherer::run (this=0xaebd58) at dialogs/qfileinfogatherer.cpp:214
#4  0x00007f038c11c025 in QThreadPrivate::start (arg=0xaebd58) at thread/qthread_unix.cpp:331
#5  0x00007f03897a8f05 in start_thread () from /lib64/libpthread.so.0
#6  0x00007f038b86963d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f037681e700 (LWP 30611)):
#0  0x00007fff699a498f in clock_gettime ()
#1  0x00007f038611ce91 in clock_gettime () from /lib64/librt.so.1
#2  0x00007f038c16c114 in do_gettime (frac=0x7f037681db78, sec=0x7f037681db70) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007f038c22dd2d in QTimerInfoList::updateCurrentTime (this=0x7f036c0020d0) at kernel/qeventdispatcher_unix.cpp:339
#5  0x00007f038c22e063 in QTimerInfoList::timerWait (this=0x7f036c0020d0, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#6  0x00007f038c22cacc in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7f037681dc5c) at kernel/qeventdispatcher_glib.cpp:136
#7  0x00007f038c22cb75 in timerSourcePrepare (source=<optimized out>, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#8  0x00007f0388347b22 in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#9  0x00007f038834892d in ?? () from /usr/lib64/libglib-2.0.so.0
Comment 1 Albert Astals Cid 2012-03-08 17:55:00 UTC
Your backtrace is incomplete, where is the Thread 1 information?
Comment 2 Yury G. Kudryashov 2012-08-07 22:48:37 UTC
Reproduced this bug. The thread 1 information is attached. Sorry for the absence of debug symbols. It seems that crash happens in libspectre, not okular.

Thread 1 (Thread 0x7f755c6d2760 (LWP 7517)):
[KCrash Handler]
#6  0x00007f754129ccda in spectre_exporter_pdf_do_page () from /usr/lib/libspectre.so.1
#7  0x00007f75414b6f3f in GSGenerator::print(QPrinter&) () from /usr/lib/kde4/okularGenerator_ghostview.so
#8  0x00007f754574b271 in Okular::Part::doPrint(QPrinter&) () from /usr/lib/kde4/okularpart.so
#9  0x00007f7545756deb in Okular::Part::slotPrint() () from /usr/lib/kde4/okularpart.so
#10 0x00007f754575781a in Okular::Part::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/kde4/okularpart.so
#11 0x00007f7559502bb1 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#12 0x00007f755a18b352 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
#13 0x00007f755a18b53f in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
#14 0x00007f755a5b8099 in ?? () from /usr/lib/libQtGui.so.4
#15 0x00007f755a5be1f2 in ?? () from /usr/lib/libQtGui.so.4
#16 0x00007f755af8dd40 in KMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libkdeui.so.5
#17 0x00007f755a1e1d74 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#18 0x00007f755a5bf78b in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4
#19 0x00007f755a1917e4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#20 0x00007f755a196e83 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#21 0x00007f755aeccd66 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#22 0x00007f75594eedbc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#23 0x00007f755a1927b2 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#24 0x00007f755a20e634 in ?? () from /usr/lib/libQtGui.so.4
#25 0x00007f755a20cd8a in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#26 0x00007f755a234612 in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007f755494283d in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#28 0x00007f7554943038 in g_main_context_iterate.isra.21 () from /usr/lib/libglib-2.0.so.0
#29 0x00007f7554943209 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#30 0x00007f755951dd4f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#31 0x00007f755a2342ae in ?? () from /usr/lib/libQtGui.so.4
#32 0x00007f75594ed8f2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#33 0x00007f75594edb47 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#34 0x00007f75594f2965 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#35 0x0000000000408006 in main ()
Comment 3 Albert Astals Cid 2012-08-07 22:52:07 UTC
Oh wait, the ps file was embedded in the comment instead of attached, hilarious :D
Comment 4 Albert Astals Cid 2012-08-07 22:59:04 UTC
Yep, it's an upstream bug.
Comment 5 Albert Astals Cid 2012-08-07 23:02:02 UTC
Actually there's a fix for that since years, spectre maintainer hasn't done a release containing it though

https://bugs.freedesktop.org/show_bug.cgi?id=31512