Bug 384142 - okular: seg at exit (For multiple input files)
Summary: okular: seg at exit (For multiple input files)
Status: RESOLVED FIXED
Alias: None
Product: okular
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-08-29 14:54 UTC by Dave Gilbert
Modified: 2017-09-05 14:26 UTC (History)
2 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 Dave Gilbert 2017-08-29 14:54:19 UTC
Fedora 26 build  okular-16.12.3-1.fc26.x86_64

1) Start okular with two pdf's ;   okular  foo.pdf  bar.pdf
2) Close each tab separately with ctrl-w
3) Once both are closed, close the application (I'm using the alt-f4 binding on my wm to close it)
4) seg:

Thread 2 "QDBusConnection" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff44b87700 (LWP 6717)]
0x00007fff4e83f574 in QObject::disconnect (sender=0x100965120, signal=signal@entry=0x0, receiver=receiver@entry=0x7fff40003460, 
    method=method@entry=0x0) at kernel/qobject.cpp:2956
2956	    const QMetaObject *smeta = sender->metaObject();

(gdb) info thread
  Id   Target Id         Frame 
  1    Thread 0x7fff44b8b8c0 (LWP 6713) "okular" 0x00007fff4c76681b in futex_wait_cancelable (private=<optimized out>, expected=0, 
    futex_word=0x100239760) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
* 2    Thread 0x7fff44b87700 (LWP 6717) "QDBusConnection" 0x00007fff4e83f574 in QObject::disconnect (sender=0x100965120, 
    signal=signal@entry=0x0, receiver=receiver@entry=0x7fff40003460, method=method@entry=0x0) at kernel/qobject.cpp:2956
  4    Thread 0x7fff2c461700 (LWP 6719) "gmain" 0x00007fff4da4aacd in poll () at ../sysdeps/unix/syscall-template.S:84
  5    Thread 0x7fff2bc60700 (LWP 6720) "gdbus" 0x00007fff4da4aacd in poll () at ../sysdeps/unix/syscall-template.S:84
(gdb) where
#0  0x00007fff4e83f574 in QObject::disconnect(QObject const*, char const*, QObject const*, char const*) (sender=0x100965120, signal=signal@entry=0x0, receiver=receiver@entry=0x7fff40003460, method=method@entry=0x0) at kernel/qobject.cpp:2956
#1  0x00007fff4ea79db8 in QObject::disconnect(QObject const*, char const*) const (member=0x0, receiver=0x7fff40003460, this=<optimized out>) at ../../src/corelib/kernel/qobject.h:336
#2  0x00007fff4ea79db8 in QDBusConnectionPrivate::closeConnection() (this=this@entry=0x7fff40003460) at qdbusintegrator.cpp:1147
#3  0x00007fff4ea6db92 in QDBusConnectionManager::run() (this=
    0x7fff4eae0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:188
#4  0x00007fff4e66ec9e in QThreadPrivate::start(void*) (arg=0x7fff4eae0060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:368
#5  0x00007fff4c76036d in start_thread (arg=0x7fff44b87700) at pthread_create.c:456
#6  0x00007fff4da56bbf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:97
Comment 1 Albert Astals Cid 2017-08-29 21:53:26 UTC
Which Qt are you using?
Comment 2 Dave Gilbert 2017-08-29 22:40:38 UTC
(In reply to Albert Astals Cid from comment #1)
> Which Qt are you using?

[dg@major ~]$ rpm -qf /lib64/libQt5Core.so.5
qt5-qtbase-5.7.1-19.fc26.x86_64

[dg@major ~]$ ldd /usr/bin/okular|grep -i qt
	libQt5Network.so.5 => /lib64/libQt5Network.so.5 (0x00007ff510cb8000)
	libQt5Xml.so.5 => /lib64/libQt5Xml.so.5 (0x00007ff510c78000)
	libQt5Widgets.so.5 => /lib64/libQt5Widgets.so.5 (0x00007ff50d438000)
	libQt5Gui.so.5 => /lib64/libQt5Gui.so.5 (0x00007ff50cf8a000)
	libQt5DBus.so.5 => /lib64/libQt5DBus.so.5 (0x00007ff50ceff000)
	libQt5Core.so.5 => /lib64/libQt5Core.so.5 (0x00007ff50ca75000)
	libQt5Concurrent.so.5 => /lib64/libQt5Concurrent.so.5 (0x00007ff510c6a000)
	libQt5X11Extras.so.5 => /lib64/libQt5X11Extras.so.5 (0x00007ff510c62000)
	libQt5PrintSupport.so.5 => /lib64/libQt5PrintSupport.so.5 (0x00007ff50b51d000)
	libQt5Svg.so.5 => /lib64/libQt5Svg.so.5 (0x00007ff50547c000)
Comment 3 Albert Astals Cid 2017-08-30 22:13:33 UTC
Git commit 8ca27ef3933691e072c290793198132b1734a843 by Albert Astals Cid.
Committed on 30/08/2017 at 22:13.
Pushed by aacid into branch 'Applications/17.08'.

Fix crash when closing

Unregister the part dbus object when it gets destroyed

Also fixes a crash if you try to inspect okular with qdbusviewer after having closed the a part/tab

M  +5    -2    part.cpp
M  +2    -0    part.h

https://commits.kde.org/okular/8ca27ef3933691e072c290793198132b1734a843
Comment 4 Dave Gilbert 2017-08-30 22:37:13 UTC
Not tested, but Thanks!