Bug 282965 - Okular (chm file is open) crahsed when quit
Summary: Okular (chm file is open) crahsed when quit
Status: RESOLVED INTENTIONAL
Alias: None
Product: okular
Classification: Applications
Component: CHM backend (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-28 11:23 UTC by julee
Modified: 2015-09-26 11:08 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description julee 2011-09-28 11:23:51 UTC
Application: okular (0.13.80)
KDE Platform Version: 4.7.00 (4.7.0) (Compiled from sources)
Qt Version: 4.7.2
Operating System: Linux 2.6.38-11-generic i686
Distribution: Ubuntu 11.04

-- Information about the crash:
I open chm file with okular,when I clicked close button to quit okular,then it crashed.
Howerver,if i what i open is pdf file,it works well

The crash can be reproduced every time.

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

Thread 2 (Thread 0xb2da2b70 (LWP 3971)):
#0  0x00e1a416 in __kernel_vsyscall ()
#1  0x04031753 in __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:95
#2  0x03fc4b94 in _L_lock_10338 () from /lib/i386-linux-gnu/libc.so.6
#3  0x03fc3416 in __libc_free (mem=0x8e41de8) at malloc.c:3736
#4  0x01410a26 in g_free () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x014057db in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#6  0x00cdca15 in QEventDispatcherGlib::~QEventDispatcherGlib (this=0x869b740, __in_chrg=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:373
#7  0x00cdcb52 in QEventDispatcherGlib::~QEventDispatcherGlib (this=0x869b740, __in_chrg=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:401
#8  0x00bba00a in QThreadPrivate::finish (arg=0x8c8f300) at thread/qthread_unix.cpp:356
#9  0x00bbadaa in ~__pthread_cleanup_class (arg=0x8c8f300) at /usr/include/pthread.h:545
#10 QThreadPrivate::start (arg=0x8c8f300) at thread/qthread_unix.cpp:279
#11 0x0048ae99 in start_thread (arg=0xb2da2b70) at pthread_create.c:304
#12 0x0402373e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb787c930 (LWP 3918)):
[KCrash Handler]
#7  malloc_consolidate (av=0x40b13c0) at malloc.c:5155
#8  0x03fc021a in _int_free (av=<value optimized out>, p=0x94b86f0) at malloc.c:5034
#9  0x03fc341d in __libc_free (mem=0x94b86f8) at malloc.c:3738
#10 0x00bb4bbd in qFree (ptr=0x94b86f8) at global/qmalloc.cpp:60
#11 0x01824bd0 in QList<TinyTextEntity*>::free (data=<value optimized out>, this=<value optimized out>) at /usr/include/qt4/QtCore/qlist.h:745
#12 0x018253cd in Okular::TextPagePrivate::~TextPagePrivate (this=0x9600640, __in_chrg=<value optimized out>) at /home/uli/bin/kde4/okular/core/textpage.cpp:174
#13 0x01825408 in Okular::TextPage::~TextPage (this=0x9600820, __in_chrg=<value optimized out>) at /home/uli/bin/kde4/okular/core/textpage.cpp:201
#14 0x018196eb in Okular::PagePrivate::~PagePrivate (this=0x8cd8e90, __in_chrg=<value optimized out>) at /home/uli/bin/kde4/okular/core/page.cpp:80
#15 0x0181d530 in Okular::Page::~Page (this=0x8ce2cd8, __in_chrg=<value optimized out>) at /home/uli/bin/kde4/okular/core/page.cpp:140
#16 0x0180cc06 in Okular::Document::closeDocument (this=0x82f1770) at /home/uli/bin/kde4/okular/core/document.cpp:1831
#17 0x03de1d3b in Okular::Part::closeUrl (this=0x825f438) at /home/uli/bin/kde4/okular/part.cpp:1151
#18 0x03de21f8 in Okular::Part::~Part (this=0x825f438, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/uli/bin/kde4/okular/part.cpp:655
#19 0x03de2272 in Okular::Part::~Part (this=0x825f438, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/uli/bin/kde4/okular/part.cpp:680
#20 0x080501d8 in Shell::~Shell (this=0x818fa68, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/uli/bin/kde4/okular/shell/shell.cpp:123
#21 0x080502b2 in Shell::~Shell (this=0x818fa68, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/uli/bin/kde4/okular/shell/shell.cpp:126
#22 0x00cc1bc5 in qDeleteInEventHandler (o=0x818fa68) at kernel/qobject.cpp:3995
#23 0x00cc43e8 in QObject::event (this=0x818fa68, e=0x8d15ca0) at kernel/qobject.cpp:1209
#24 0x06c21b62 in QWidget::event (this=0x818fa68, event=0x8d15ca0) at kernel/qwidget.cpp:8718
#25 0x07033527 in QMainWindow::event (this=0x818fa68, event=0x8d15ca0) at widgets/qmainwindow.cpp:1480
#26 0x010c6c9c in KMainWindow::event (this=0x818fa68, ev=0x8d15ca0) at ../../kdeui/widgets/kmainwindow.cpp:1100
#27 0x0110d02f in KXmlGuiWindow::event (this=0x818fa68, ev=0x8d15ca0) at ../../kdeui/xmlgui/kxmlguiwindow.cpp:126
#28 0x06bc9d24 in QApplicationPrivate::notify_helper (this=0x812dee8, receiver=0x818fa68, e=0x8d15ca0) at kernel/qapplication.cpp:4462
#29 0x06bce97b in QApplication::notify (this=0xbf8b7fec, receiver=0x818fa68, e=0x8d15ca0) at kernel/qapplication.cpp:4427
#30 0x00ff293a in KApplication::notify (this=0xbf8b7fec, receiver=0x818fa68, event=0x8d15ca0) at ../../kdeui/kernel/kapplication.cpp:311
#31 0x00caf0bb in QCoreApplication::notifyInternal (this=0xbf8b7fec, receiver=0x818fa68, event=0x8d15ca0) at kernel/qcoreapplication.cpp:731
#32 0x00cb2c79 in sendEvent (receiver=0x0, event_type=0, data=0x80f7918) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#33 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x80f7918) at kernel/qcoreapplication.cpp:1372
#34 0x00cb2e0d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1265
#35 0x00cdc3c4 in sendPostedEvents (s=0x81302d0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#36 postEventSourceDispatch (s=0x81302d0) at kernel/qeventdispatcher_glib.cpp:277
#37 0x01409848 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#38 0x0140a010 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#39 0x0140a2c4 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#40 0x00cdc53c in QEventDispatcherGlib::processEvents (this=0x80f7470, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#41 0x06c801e5 in QGuiEventDispatcherGlib::processEvents (this=0x80f7470, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#42 0x00cae289 in QEventLoop::processEvents (this=0xbf8b7e84, flags=...) at kernel/qeventloop.cpp:149
#43 0x00cae522 in QEventLoop::exec (this=0xbf8b7e84, flags=...) at kernel/qeventloop.cpp:201
#44 0x00cb2ecc in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1008
#45 0x06bc78e7 in QApplication::exec () at kernel/qapplication.cpp:3736
#46 0x0804e868 in main (argc=6553711, argv=0x11) at /home/uli/bin/kde4/okular/shell/main.cpp:85

Possible duplicates by query: bug 277138, bug 256077.

Reported using DrKonqi
Comment 1 Albert Astals Cid 2011-09-28 12:48:05 UTC
Is this okular from git master?
Comment 2 julee 2011-09-28 13:19:11 UTC
(In reply to comment #1)
> Is this okular from git master?

Yeah,i got okular's source from git today.
The old version seems don't have this bug.
Comment 3 Albert Astals Cid 2011-09-28 13:31:47 UTC
Can you post a valgrind trace?
valgrind okular myfile.chm
Comment 4 julee 2011-09-28 13:52:13 UTC
(In reply to comment #3)
> Can you post a valgrind trace?
> valgrind okular myfile.chm

Okular crashed when chm file is more larger.That chm file cause okular crash is 13.5M.For small chm file such as 300K,okular doesn't crash.

This is valgrind okular large_file.chm 's output:


==9059== Memcheck, a memory error detector
==9059== Copyright (C) 2002-2010, and GNU GPL'd, by Julian Seward et al.
==9059== Using Valgrind-3.6.1 and LibVEX; rerun with -h for copyright info
==9059== Command: okular C++\ GUI\ Programming\ with\ Qt\ 4,\ Second\ Edition.chm
==9059== 

==9059== Conditional jump or move depends on uninitialised value(s)
==9059==    at 0x5F39D19: inflateReset2 (in /lib/i386-linux-gnu/libz.so.1.2.3.4)
==9059==    by 0x5F39E0C: inflateInit2_ (in /lib/i386-linux-gnu/libz.so.1.2.3.4)
==9059==    by 0x5F39E92: inflateInit_ (in /lib/i386-linux-gnu/libz.so.1.2.3.4)
==9059==    by 0x61F97A4: png_create_read_struct_2 (in /lib/i386-linux-gnu/libpng12.so.0.44.0)
==9059==    by 0x61F9989: png_create_read_struct (in /lib/i386-linux-gnu/libpng12.so.0.44.0)
==9059==    by 0x4B1F8E3: QPngHandlerPrivate::readPngHeader() (qpnghandler.cpp:368)
==9059==    by 0x4B2067F: QPngHandlerPrivate::readPngImage(QImage*) (qpnghandler.cpp:439)
==9059==    by 0x4AECA47: QImageReader::read(QImage*) (qimagereader.cpp:1205)
==9059==    by 0x4AED086: QImageReader::read() (qimagereader.cpp:1155)
==9059==    by 0x4AE14BA: operator>>(QDataStream&, QImage&) (qimage.cpp:5204)
==9059==    by 0x4AFD5B3: operator>>(QDataStream&, QPixmap&) (qpixmap.cpp:1329)
==9059==    by 0x46B5FC7: KIconLoaderPrivate::findCachedPixmapWithPath(QString const&, QPixmap&, QString&) (kiconloader.cpp:876)
==9059== 
okular(9059) KXMLGUI::ActionList::plug: Index  15  is not within range (0 -  12 
--9059-- WARNING: unhandled syscall: 340
--9059-- You may be able to write your own handler.
--9059-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--9059-- Nevertheless we consider this a bug.  Please report
--9059-- it at http://valgrind.org/support/bug_reports.html.
--9059-- WARNING: unhandled syscall: 340
--9059-- You may be able to write your own handler.
--9059-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
--9059-- Nevertheless we consider this a bug.  Please report
--9059-- it at http://valgrind.org/support/bug_reports.html.
==9059== Use of uninitialised value of size 4
==9059==    at 0xD6D68B0: LZXdecompress (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD6D39FF: chm_retrieve_object (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD706998: LCHMFileImpl::RetrieveObject(chmUnitInfo const*, unsigned char*, unsigned long long, long long) const (libchmfileimpl.cpp:549)
==9059==    by 0xD711B63: LCHMFileImpl::getInfoFromWindows() (libchmfileimpl.cpp:692)
==9059==    by 0xD712C75: LCHMFileImpl::loadFile(QString const&) (libchmfileimpl.cpp:102)
==9059==    by 0xD705985: LCHMFile::loadFile(QString const&) (libchmfile.cpp:40)
==9059==    by 0xD71A73B: CHMGenerator::loadDocument(QString const&, QVector<Okular::Page*>&) (generator_chm.cpp:88)
==9059==    by 0x9D1F309: Okular::DocumentPrivate::openDocumentInternal(KSharedPtr<KService> const&, bool, QString const&, QByteArray const&) (document.cpp:675)
==9059==    by 0x9D292C5: Okular::Document::openDocument(QString const&, KUrl const&, KSharedPtr<KMimeType> const&) (document.cpp:1632)
==9059==    by 0x9C13452: Okular::Part::openFile() (part.cpp:971)
==9059==    by 0x406D873: KParts::ReadOnlyPartPrivate::openLocalFile() (part.cpp:592)
==9059==    by 0x406DF41: KParts::ReadOnlyPart::openUrl(KUrl const&) (part.cpp:556)
==9059== 
==9059== Use of uninitialised value of size 4
==9059==    at 0xD6D6DA0: LZXdecompress (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD6D39FF: chm_retrieve_object (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD706998: LCHMFileImpl::RetrieveObject(chmUnitInfo const*, unsigned char*, unsigned long long, long long) const (libchmfileimpl.cpp:549)
==9059==    by 0xD711FC9: LCHMFileImpl::getInfoFromWindows() (libchmfileimpl.cpp:719)
==9059==    by 0xD712C75: LCHMFileImpl::loadFile(QString const&) (libchmfileimpl.cpp:102)
==9059==    by 0xD705985: LCHMFile::loadFile(QString const&) (libchmfile.cpp:40)
==9059==    by 0xD71A73B: CHMGenerator::loadDocument(QString const&, QVector<Okular::Page*>&) (generator_chm.cpp:88)
==9059==    by 0x9D1F309: Okular::DocumentPrivate::openDocumentInternal(KSharedPtr<KService> const&, bool, QString const&, QByteArray const&) (document.cpp:675)
==9059==    by 0x9D292C5: Okular::Document::openDocument(QString const&, KUrl const&, KSharedPtr<KMimeType> const&) (document.cpp:1632)
==9059==    by 0x9C13452: Okular::Part::openFile() (part.cpp:971)
==9059==    by 0x406D873: KParts::ReadOnlyPartPrivate::openLocalFile() (part.cpp:592)
==9059==    by 0x406DF41: KParts::ReadOnlyPart::openUrl(KUrl const&) (part.cpp:556)
==9059== 
==9059== Use of uninitialised value of size 4
==9059==    at 0xD6D68B0: LZXdecompress (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD6D373B: chm_retrieve_object (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD706998: LCHMFileImpl::RetrieveObject(chmUnitInfo const*, unsigned char*, unsigned long long, long long) const (libchmfileimpl.cpp:549)
==9059==    by 0xD712540: LCHMFileImpl::fillTopicsUrlMap() (libchmfileimpl.cpp:1257)
==9059==    by 0xD712D9B: LCHMFileImpl::loadFile(QString const&) (libchmfileimpl.cpp:113)
==9059==    by 0xD705985: LCHMFile::loadFile(QString const&) (libchmfile.cpp:40)
==9059==    by 0xD71A73B: CHMGenerator::loadDocument(QString const&, QVector<Okular::Page*>&) (generator_chm.cpp:88)
==9059==    by 0x9D1F309: Okular::DocumentPrivate::openDocumentInternal(KSharedPtr<KService> const&, bool, QString const&, QByteArray const&) (document.cpp:675)
==9059==    by 0x9D292C5: Okular::Document::openDocument(QString const&, KUrl const&, KSharedPtr<KMimeType> const&) (document.cpp:1632)
==9059==    by 0x9C13452: Okular::Part::openFile() (part.cpp:971)
==9059==    by 0x406D873: KParts::ReadOnlyPartPrivate::openLocalFile() (part.cpp:592)
==9059==    by 0x406DF41: KParts::ReadOnlyPart::openUrl(KUrl const&) (part.cpp:556)
==9059== 
==9059== Use of uninitialised value of size 4
==9059==    at 0xD6D68B0: LZXdecompress (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD6D39FF: chm_retrieve_object (in /usr/lib/libchm.so.1.0.0)
==9059==    by 0xD706998: LCHMFileImpl::RetrieveObject(chmUnitInfo const*, unsigned char*, unsigned long long, long long) const (libchmfileimpl.cpp:549)
==9059==    by 0xD7077FA: LCHMFileImpl::getFileContentAsBinary(QByteArray*, QString const&) const (libchmfileimpl.cpp:1126)
==9059==    by 0xD707868: LCHMFileImpl::getFileContentAsString(QString*, QString const&, bool) (libchmfileimpl.cpp:1137)
==9059==    by 0xD7104E0: LCHMFileImpl::parseFileAndFillArray(QString const&, QVector<LCHMParsedEntry>*, bool) (libchmfileimpl.cpp:947)
==9059==    by 0xD705C45: LCHMFile::parseTableOfContents(QVector<LCHMParsedEntry>*) const (libchmfile.cpp:76)
==9059==    by 0xD71A79F: CHMGenerator::loadDocument(QString const&, QVector<Okular::Page*>&) (generator_chm.cpp:96)
==9059==    by 0x9D1F309: Okular::DocumentPrivate::openDocumentInternal(KSharedPtr<KService> const&, bool, QString const&, QByteArray const&) (document.cpp:675)
==9059==    by 0x9D292C5: Okular::Document::openDocument(QString const&, KUrl const&, KSharedPtr<KMimeType> const&) (document.cpp:1632)
==9059==    by 0x9C13452: Okular::Part::openFile() (part.cpp:971)
==9059==    by 0x406D873: KParts::ReadOnlyPartPrivate::openLocalFile() (part.cpp:592)
==9059== 
okular(9059)/okular (app) Okular::DocumentPrivate::sendGeneratorRequest: Running out of memory on page 124 (1052x22407 px);
okular(9059)/okular (app) Okular::DocumentPrivate::sendGeneratorRequest: this message will be reported only once.                                                       
okular(9059)/kdeui (kdelibs) KXMLGUIClient::~KXMLGUIClient: 0x987ca14 deleted without having been removed from the factory first. This will leak standalone popupmenus and could lead to crashes.                                                                                                                                               
==9059==                                                                                                                                                                
==9059== HEAP SUMMARY:                                                                                                                                                  
==9059==     in use at exit: 609,844 bytes in 11,833 blocks                                                                                                             
==9059==   total heap usage: 17,257,922 allocs, 17,246,089 frees, 2,602,343,798 bytes allocated                                                                         
==9059==                                                                                                                                                                
==9059== LEAK SUMMARY:                                                                                                                                                  
==9059==    definitely lost: 11,956 bytes in 1,227 blocks                                                                                                               
==9059==    indirectly lost: 164,704 bytes in 1,242 blocks                                                                                                              
==9059==      possibly lost: 4,952 bytes in 26 blocks                                                                                                                   
==9059==    still reachable: 428,232 bytes in 9,338 blocks                                                                                                              
==9059==         suppressed: 0 bytes in 0 blocks
==9059== Rerun with --leak-check=full to see details of leaked memory
==9059== 
==9059== For counts of detected and suppressed errors, rerun with: -v
==9059== Use --track-origins=yes to see where uninitialised values come from
==9059== ERROR SUMMARY: 78 errors from 5 contexts (suppressed: 285 from 15)
Comment 5 Albert Astals Cid 2011-09-28 14:00:20 UTC
Did it crash when running thorugh valgrind? The log seems to indicate it did not
Comment 6 julee 2011-09-28 14:08:15 UTC
(In reply to comment #5)
> Did it crash when running thorugh valgrind? The log seems to indicate it did
> not

No,it doesn't crash thorugh valgrind.
But for the same file,it doesn't run throught valgrind,okular crash every time.
Comment 7 Albert Astals Cid 2011-09-28 16:12:40 UTC
Works fine here when using file with md5sum
4fd80c7f20fba9ca03e00d06be39570c  C++ GUI Programming with Qt 4, Second Edition.chm

Are you closing Okular after or before the first page is displayed?
Comment 8 julee 2011-09-28 16:28:26 UTC
(In reply to comment #7)
> Works fine here when using file with md5sum
> 4fd80c7f20fba9ca03e00d06be39570c  C++ GUI Programming with Qt 4, Second
> Edition.chm
> 
> Are you closing Okular after or before the first page is displayed?

I close Okular after the first page is displayed.I alse viewed the file for some time.
I alse tried some other chm file ,one file 13.5M (crahed),one file 8.6M(crahed),one file 2.2M(doesn't crash).
I removed all config-related file in .kde,the result is the same.
Comment 9 Albert Astals Cid 2011-09-28 20:55:00 UTC
Without being able to reproduce it and valgrind giving no info about it, it is quite difficult or almost impossible to think, also your build seems to be somewhat broken since there are things like

#18 0x03de21f8 in Okular::Part::~Part (this=0x825f438, __in_chrg=<value
optimized out>, __vtt_parm=<value optimized out>) at
/home/uli/bin/kde4/okular/part.cpp:655
#19 0x03de2272 in Okular::Part::~Part (this=0x825f438, __in_chrg=<value
optimized out>, __vtt_parm=<value optimized out>) at
/home/uli/bin/kde4/okular/part.cpp:680

In the backtrace implying that part.cpp line 680 calls line 655 of part.cpp which is totally impossible.

Which compile options do you use for compiling okular?
Comment 10 julee 2011-09-29 13:03:58 UTC
(In reply to comment #9)
> Without being able to reproduce it and valgrind giving no info about it, it is
> quite difficult or almost impossible to think, also your build seems to be
> somewhat broken since there are things like
> 
> #18 0x03de21f8 in Okular::Part::~Part (this=0x825f438, __in_chrg=<value
> optimized out>, __vtt_parm=<value optimized out>) at
> /home/uli/bin/kde4/okular/part.cpp:655
> #19 0x03de2272 in Okular::Part::~Part (this=0x825f438, __in_chrg=<value
> optimized out>, __vtt_parm=<value optimized out>) at
> /home/uli/bin/kde4/okular/part.cpp:680
> 
> In the backtrace implying that part.cpp line 680 calls line 655 of part.cpp
> which is totally impossible.
> 
> Which compile options do you use for compiling okular?

just 
cmake .. -DCMAKE_INSTALL_PREFIX=$(kde4-config --prefix)
make
sudo  make install
Comment 11 Fabio D'Urso 2014-05-08 14:16:23 UTC
Can you try with Okular >= 0.19.0 (KDE >= 4.13.0), can you still reproduce this issue?
Thanks for caring about Okular :)
Comment 12 Albert Astals Cid 2015-09-26 11:08:03 UTC
No answer from reporter