Bug 303998

Summary: Pressing the back button crashes rekonq
Product: [Applications] okular Reporter: René Serral <rserral>
Component: generalAssignee: Okular developers <okular-devel>
Status: RESOLVED FIXED    
Severity: crash CC: aacid
Priority: NOR    
Version: 0.14.97   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In: 4.9.0
Sentry Crash Report:
Attachments: Valgrind output
Proposed patch for Okular

Description René Serral 2012-07-24 10:24:33 UTC
Application: rekonq (1.0)
KDE Platform Version: 4.8.97 (Compiled from sources)
Qt Version: 4.8.2
Operating System: Linux 3.5.0 x86_64
Distribution: Debian GNU/Linux unstable (sid)

-- Information about the crash:
- What I was doing when the application crashed:
I was browsing in http://ieeexplore.ieee.org, and while looking at a PDF file, once it was loaded the screen appeared dark gray. I resized the window, the contents appeared after the resizing (Crtl-wheel mouse didn't work), afterwards, pressing the back button in the toolbar just crashed the browser.

The crash can be reproduced some of the time.

-- Backtrace:
Application: rekonq (kdeinit4), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f20c913a760 (LWP 4372))]

Thread 4 (Thread 0x7f20b22be700 (LWP 4377)):
#0  0x00007f20c77712d4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f20be6181c7 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007f20be6181f9 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007f20c776cb50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007f20c5e0770d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f20b19bd700 (LWP 4378)):
#0  0x00007f20c77712d4 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f20bdaadc0d in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007f20bdaadd19 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007f20c776cb50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007f20c5e0770d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f20b10bc700 (LWP 4379)):
#0  0x00007f20c256ac10 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f20c256b3fb in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f20c256b5f4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f20c7b2d306 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f20c7afd92f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f20c7afdbb8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f20c7a00d70 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f20c7a03d0b in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f20c776cb50 in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#9  0x00007f20c5e0770d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#10 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f20c913a760 (LWP 4372)):
[KCrash Handler]
#6  0x00007f20c7094573 in QLineEdit::text() const () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#7  0x00007f2056a449c6 in SearchLineEdit::prepareLineEditForSearch (this=0x3d40870) at /media/kdesvn/kde4svn/src/kdegraphics/okular/ui/searchlineedit.cpp:174
#8  0x00007f20569e2bb5 in closeUrl (this=0x365f6b0, promptToSave=<optimized out>) at /media/kdesvn/kde4svn/src/kdegraphics/okular/part.cpp:1376
#9  Okular::Part::closeUrl (this=0x365f6b0, promptToSave=<optimized out>) at /media/kdesvn/kde4svn/src/kdegraphics/okular/part.cpp:1359
#10 0x00007f20569e334a in Okular::Part::~Part (this=0x365f6b0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /media/kdesvn/kde4svn/src/kdegraphics/okular/part.cpp:806
#11 0x00007f20569e33a9 in Okular::Part::~Part (this=0x365f6b0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /media/kdesvn/kde4svn/src/kdegraphics/okular/part.cpp:833
#12 0x00007f20bbe4cf31 in KParts::Part::slotWidgetDestroyed (this=0x365f6b0) at /media/kdesvn/kde4svn/src/kdelibs/kparts/part.cpp:353
#13 0x00007f20c7b145cf in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#14 0x00007f20c7b1500f in QObject::destroyed(QObject*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#15 0x00007f20c7b15103 in QObject::~QObject() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#16 0x00007f20c6cd6330 in QWidget::~QWidget() () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#17 0x00007f2056a47f89 in Sidebar::~Sidebar (this=0x39f5ac0, __in_chrg=<optimized out>) at /media/kdesvn/kde4svn/src/kdegraphics/okular/ui/sidebar.cpp:484
#18 0x00007f20c7b13ad8 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#19 0x00007f20c6cdb75a in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#20 0x00007f20c6c8c70c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#21 0x00007f20c6c90b8a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#22 0x00007f20c8b42726 in KApplication::notify (this=0x7fffab3861d0, receiver=0x39f5ac0, event=0x341c0c0) at /media/kdesvn/kde4svn/src/kdelibs/kdeui/kernel/kapplication.cpp:311
#23 0x00007f20c7afebde in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#24 0x00007f20c7b02a61 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#25 0x00007f20c7b2d153 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007f20c256b205 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f20c256b538 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f20c256b5f4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f20c7b2d2e6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#30 0x00007f20c6d2d96e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#31 0x00007f20c7afd92f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#32 0x00007f20c7afdbb8 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#33 0x00007f20c7b02d78 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#34 0x00007f20bea57001 in kdemain (argc=1, argv=0x260b300) at /media/kdesvn/kde4svn/src/rekonq/src/main.cpp:219
#35 0x00000000004086c7 in launch (argc=argc@entry=1, _name=_name@entry=0x26463a8 "/home/kde4/kde/bin/rekonq", args=args@entry=0x26463c2 "\001", cwd=cwd@entry=0x0, envc=envc@entry=1, envs=<optimized out>, envs@entry=0x26463ca "DISPLAY=:0", reset_env=false, tty=tty@entry=0x0, avoid_loops=false, startup_id_str=startup_id_str@entry=0x26463dd "asuso;1343124472;563310;5256_TIME27606906") at /media/kdesvn/kde4svn/src/kdelibs/kinit/kinit.cpp:734
#36 0x000000000040951b in handle_launcher_request (sock=7, who=<error reading variable: Unhandled dwarf expression opcode 0xfa>) at /media/kdesvn/kde4svn/src/kdelibs/kinit/kinit.cpp:1226
#37 0x0000000000409b75 in handle_requests (waitForPid=waitForPid@entry=0) at /media/kdesvn/kde4svn/src/kdelibs/kinit/kinit.cpp:1419
#38 0x0000000000405797 in main (argc=2, argv=<optimized out>, envp=0x7fffab387040) at /media/kdesvn/kde4svn/src/kdelibs/kinit/kinit.cpp:1907

Reported using DrKonqi
Comment 1 Andrea Diamantini 2012-07-24 19:54:23 UTC
This seems to me an okular crash. Moving...
Comment 2 Albert Astals Cid 2012-07-24 22:38:21 UTC
Hi René, I can't reproduce the crash here, can you please run rekonq in valgrind and attach the log it gives when you do what usually makes it crash?

To run rekonq in valgrind just do
valgrind rekonq
(of course you need to have valgrind installed but that should be easy to get from the debian packages).
Comment 3 René Serral 2012-07-25 08:27:40 UTC
Created attachment 72750 [details]
Valgrind output
Comment 4 René Serral 2012-07-25 08:28:05 UTC
Hi Albert
Here you are, I hope this help!
Comment 5 Fabio D'Urso 2012-07-25 08:47:25 UTC
Created attachment 72751 [details]
Proposed patch for Okular

I'm waiting for feedback from Albert to commit it.
Comment 6 Albert Astals Cid 2012-07-25 17:02:37 UTC
Please commit.
Comment 7 Fabio D'Urso 2012-07-25 17:28:05 UTC
Git commit 739bbe9acea448d53ed47935bcb6aeb9764cc838 by Fabio D'Urso.
Committed on 25/07/2012 at 02:29.
Pushed by fabiod into branch 'KDE/4.9'.

Moved m_findBar->resetSearch() from closeUrl() to notifySetup()

As a side effect, this change fixes bug 303998, that caused a crash if
the part's widget was destroyed before the part itself, because
m_findBar had already been destroyed.
FIXED-IN: 4.9.0

M  +1    -1    part.cpp

http://commits.kde.org/okular/739bbe9acea448d53ed47935bcb6aeb9764cc838
Comment 8 Fabio D'Urso 2012-07-25 17:28:06 UTC
Git commit 0a6f211c41fd1b37fbe93c6dfeb36c37516e1500 by Fabio D'Urso.
Committed on 25/07/2012 at 02:29.
Pushed by fabiod into branch 'master'.

Moved m_findBar->resetSearch() from closeUrl() to notifySetup()

As a side effect, this change fixes bug 303998, that caused a crash if
the part's widget was destroyed before the part itself, because
m_findBar had already been destroyed.
FIXED-IN: 4.9.0

M  +1    -1    part.cpp

http://commits.kde.org/okular/0a6f211c41fd1b37fbe93c6dfeb36c37516e1500