Bug 271424 - Okular freeze on exit
Summary: Okular freeze on exit
Status: RESOLVED NOT A BUG
Alias: None
Product: okular
Classification: Applications
Component: general (show other bugs)
Version: 0.12.1
Platform: Debian unstable Linux
: NOR normal
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-21 15:33 UTC by paul s. romanchenko
Modified: 2011-04-21 16:08 UTC (History)
0 users

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 paul s. romanchenko 2011-04-21 15:33:20 UTC
Version:           0.12.1 (using KDE 4.6.1) 
OS:                Linux

I run "okular /path/to/pdf-file" from terminal. After closing document, okular still running.
Attached gdb gives the following stack trace:

#0  0x00007f906a85f8d3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f906b224c8a in qt_safe_select(int, struct {...} *, struct {...} *, struct {...} *, const timeval *) (nfds=13, fdread=0x12306c0, 
    fdwrite=0x1230958, fdexcept=0x1230bf0, orig_timeout=0x7fffdca7af00) at kernel/qcore_unix.cpp:92
#2  0x00007f906b229e1d in QEventDispatcherUNIXPrivate::doSelect (this=0x1230500, flags=<value optimized out>, timeout=<value optimized out>)
    at kernel/qeventdispatcher_unix.cpp:219
#3  0x00007f906b22a9cb in QEventDispatcherUNIX::processEvents (this=0x1216e60, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_unix.cpp:918
#4  0x00007f906bcc637d in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_x11.cpp:152
#5  0x00007f906b1fa222 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#6  0x00007f906b1fa60c in QEventLoop::exec (this=0x7fffdca7b210, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#7  0x00007f905eb8cf31 in Okular::Document::closeDocument (this=0x139c430) at ../../okular/core/document.cpp:1761
#8  0x00007f905ee3641d in Okular::Part::closeUrl (this=0x12baef0) at ../../okular/part.cpp:1136
#9  0x00007f905ee36888 in Okular::Part::~Part (this=0x12baef0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
    at ../../okular/part.cpp:651
#10 0x00007f905ee368d9 in Okular::Part::~Part (this=0x12baef0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
    at ../../okular/part.cpp:676
#11 0x000000000040a03c in Shell::~Shell (this=0x128bfa0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
    at ../../../okular/shell/shell.cpp:122
#12 0x000000000040a0e9 in Shell::~Shell (this=0x128bfa0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>)
    at ../../../okular/shell/shell.cpp:125
#13 0x00007f906b20cb98 in QObject::event (this=0x128bfa0, e=0x12306c0) at kernel/qobject.cpp:1194
#14 0x00007f906bc67bef in QWidget::event (this=0x128bfa0, event=0x13d0810) at kernel/qwidget.cpp:8659
#15 0x00007f906c04cdbb in QMainWindow::event (this=0x128bfa0, event=0x13d0810) at widgets/qmainwindow.cpp:1478
#16 0x00007f906ca82883 in KXmlGuiWindow::event (this=0x128bfa0, ev=0x13d0810) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#17 0x00007f906bc124ac in QApplicationPrivate::notify_helper (this=0x12302a0, receiver=0x128bfa0, e=0x13d0810) at kernel/qapplication.cpp:4445
#18 0x00007f906bc18e4d in QApplication::notify (this=0x7fffdca7c270, receiver=0x128bfa0, e=0x13d0810) at kernel/qapplication.cpp:4324
#19 0x00007f906c984436 in KApplication::notify (this=0x7fffdca7c270, receiver=0x128bfa0, event=0x13d0810) at ../../kdeui/kernel/kapplication.cpp:311
#20 0x00007f906b1fb4fc in QCoreApplication::notifyInternal (this=0x7fffdca7c270, receiver=0x128bfa0, event=0x13d0810)
    at kernel/qcoreapplication.cpp:732
#21 0x00007f906b1fe49b in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x1217350)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x1217350) at kernel/qcoreapplication.cpp:1373
#23 0x00007f906b22a960 in QEventDispatcherUNIX::processEvents (this=0x1216e60, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_unix.cpp:890
#24 0x00007f906bcc637d in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_x11.cpp:152
#25 0x00007f906b1fa222 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#26 0x00007f906b1fa60c in QEventLoop::exec (this=0x7fffdca7c1c0, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#27 0x00007f906b1fe6db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#28 0x00000000004088b9 in main (argc=2, argv=0x7fffdca7c958) at ../../../okular/shell/main.cpp:85


Reproducible: Couldn't Reproduce

Steps to Reproduce:
Run okular
Close okular

Actual Results:  
Okular still running

Expected Results:  
Okular exits

OS: Linux (x86_64) release 2.6.32-5-amd64
Compiler: gcc
Comment 1 Pino Toscano 2011-04-21 15:38:47 UTC
Single thread backtrace, please run "thread apply all bt".
Does the document contain pages which take time (even lot of it) to render?
Comment 2 paul s. romanchenko 2011-04-21 15:57:46 UTC
It's regular pdf file, and it opens fine with kpdf.
But okular can't render some pages. Seems like it stucks on rendering actually.
Unfortunatelly, I can't provide this file as it contains private info.

(gdb) thread apply all bt

Thread 2 (Thread 0x7f9059d6c710 (LWP 7064)):
#0  0x00007f9059ee31a0 in Splash::composite(SplashBitmap*, int, int, int, int, int, int, bool, bool) () from /usr/lib/libpoppler.so.13
#1  0x00007f9059e04ba0 in SplashOutputDev::paintTransparencyGroup(GfxState*, double*) () from /usr/lib/libpoppler.so.13
#2  0x00007f9059e04b3a in SplashOutputDev::endMaskClip(GfxState*) () from /usr/lib/libpoppler.so.13
#3  0x00007f9059e505e5 in Gfx::doImage(Object*, Stream*, bool) () from /usr/lib/libpoppler.so.13
#4  0x00007f9059e50aea in Gfx::opBeginImage(Object*, int) () from /usr/lib/libpoppler.so.13
#5  0x00007f9059e47bd0 in Gfx::go(bool) () from /usr/lib/libpoppler.so.13
#6  0x00007f9059e48005 in Gfx::display(Object*, bool) () from /usr/lib/libpoppler.so.13
#7  0x00007f9059e91796 in Page::displaySlice(OutputDev*, double, double, int, bool, bool, int, int, int, int, bool, Catalog*, bool (*)(void*), void*, bool (*)(Annot*, void*), void*) () from /usr/lib/libpoppler.so.13
#8  0x00007f905a1b6250 in Poppler::Page::renderToImage(double, double, int, int, int, int, Poppler::Page::Rotation) const () from /usr/lib/libpoppler-qt4.so.3
#9  0x00007f905a436205 in PDFPixmapGeneratorThread::run (this=0x1341c80) at ../../../../okular/generators/poppler/generator_pdf.cpp:1851
#10 0x00007f906b10930e in QThreadPrivate::start (arg=0x1341c80) at thread/qthread_unix.cpp:285
#11 0x00007f906828d8ba in start_thread (arg=<value optimized out>) at pthread_create.c:300
#12 0x00007f906a86603d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f906d692720 (LWP 7055)):
#0  0x00007f906a85f8d3 in select () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f906b224c8a in qt_safe_select(int, struct {...} *, struct {...} *, struct {...} *, const timeval *) (nfds=13, fdread=0x12306c0, fdwrite=0x1230958, fdexcept=0x1230bf0, 
    orig_timeout=0x7fffdca7af00) at kernel/qcore_unix.cpp:92
#2  0x00007f906b229e1d in QEventDispatcherUNIXPrivate::doSelect (this=0x1230500, flags=<value optimized out>, timeout=<value optimized out>)
    at kernel/qeventdispatcher_unix.cpp:219
#3  0x00007f906b22a9cb in QEventDispatcherUNIX::processEvents (this=0x1216e60, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_unix.cpp:918
#4  0x00007f906bcc637d in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_x11.cpp:152
#5  0x00007f906b1fa222 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#6  0x00007f906b1fa60c in QEventLoop::exec (this=0x7fffdca7b210, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#7  0x00007f905eb8cf31 in Okular::Document::closeDocument (this=0x139c430) at ../../okular/core/document.cpp:1761
#8  0x00007f905ee3641d in Okular::Part::closeUrl (this=0x12baef0) at ../../okular/part.cpp:1136
#9  0x00007f905ee36888 in Okular::Part::~Part (this=0x12baef0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at ../../okular/part.cpp:651
#10 0x00007f905ee368d9 in Okular::Part::~Part (this=0x12baef0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at ../../okular/part.cpp:676
#11 0x000000000040a03c in Shell::~Shell (this=0x128bfa0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at ../../../okular/shell/shell.cpp:122
#12 0x000000000040a0e9 in Shell::~Shell (this=0x128bfa0, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at ../../../okular/shell/shell.cpp:125
#13 0x00007f906b20cb98 in QObject::event (this=0x128bfa0, e=0x12306c0) at kernel/qobject.cpp:1194
#14 0x00007f906bc67bef in QWidget::event (this=0x128bfa0, event=0x13d0810) at kernel/qwidget.cpp:8659
#15 0x00007f906c04cdbb in QMainWindow::event (this=0x128bfa0, event=0x13d0810) at widgets/qmainwindow.cpp:1478
#16 0x00007f906ca82883 in KXmlGuiWindow::event (this=0x128bfa0, ev=0x13d0810) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#17 0x00007f906bc124ac in QApplicationPrivate::notify_helper (this=0x12302a0, receiver=0x128bfa0, e=0x13d0810) at kernel/qapplication.cpp:4445
#18 0x00007f906bc18e4d in QApplication::notify (this=0x7fffdca7c270, receiver=0x128bfa0, e=0x13d0810) at kernel/qapplication.cpp:4324
#19 0x00007f906c984436 in KApplication::notify (this=0x7fffdca7c270, receiver=0x128bfa0, event=0x13d0810) at ../../kdeui/kernel/kapplication.cpp:311
#20 0x00007f906b1fb4fc in QCoreApplication::notifyInternal (this=0x7fffdca7c270, receiver=0x128bfa0, event=0x13d0810) at kernel/qcoreapplication.cpp:732
#21 0x00007f906b1fe49b in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x1217350) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x1217350) at kernel/qcoreapplication.cpp:1373
---Type <return> to continue, or q <return> to quit---
#23 0x00007f906b22a960 in QEventDispatcherUNIX::processEvents (this=0x1216e60, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_unix.cpp:890
#24 0x00007f906bcc637d in QEventDispatcherX11::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventdispatcher_x11.cpp:152
#25 0x00007f906b1fa222 in QEventLoop::processEvents (this=<value optimized out>, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#26 0x00007f906b1fa60c in QEventLoop::exec (this=0x7fffdca7c1c0, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:201
#27 0x00007f906b1fe6db in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#28 0x00000000004088b9 in main (argc=2, argv=0x7fffdca7c958) at ../../../okular/shell/main.cpp:85
Comment 3 Pino Toscano 2011-04-21 16:08:02 UTC
(In reply to comment #2)
> But okular can't render some pages. Seems like it stucks on rendering actually.

Correct, this is busy rendering, and we cannot do anything else than wait for it to finish; hence, I am closing this bug.
For the rendering issue, this would be another issue, and a bug to be filed for the poppler library, but ...

> Unfortunatelly, I can't provide this file as it contains private info.

... given you cannot provide a public document, a bug report for poppler would not be useful.