Bug 256464

Summary: Crash inside SSL code
Product: [Applications] konversation Reporter: Eduardo Habkost <ehabkost>
Component: generalAssignee: Konversation Developers <konversation-devel>
Status: RESOLVED FIXED    
Severity: crash CC: andresbajotierra, carlos.olmedo.e, Joerg.Thoennes, opensource, xavier.poirot
Priority: NOR    
Version: 1.3.1   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description Eduardo Habkost 2010-11-09 19:44:15 UTC
Application: konversation (1.3.1)
KDE Platform Version: 4.5.2 (KDE 4.5.2)
Qt Version: 4.7.0
Operating System: Linux 2.6.35.6-48.fc14.x86_64 x86_64
Distribution (Platform): Fedora RPMs

-- Information about the crash:
- What I was doing when the application crashed:

I asked Konversation to connect to a OFTC through SSL. It didn't know the server certificate yet, so it has shown the "Cancel/Continue/Details" dialog for untrusted certificates. I haven't seen the dialog in time, so it stayed on the screen for a few minutes. When I saw the dialog, the connection was already lost due to timeout, and when I clicked on "Continue" and then "Forever" on the next dialog, Konversation crashed.

The crash can be reproduced some of the time.

-- Backtrace:
Application: Konversation (konversation), signal: Segmentation fault
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f0aa14b9840 (LWP 4246))]

Thread 3 (Thread 0x7f0a9b19a700 (LWP 4247)):
#0  0x00000037ed8da883 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=<value optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00000037ef042374 in g_main_context_poll (context=0x27352e0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:3093
#2  g_main_context_iterate (context=0x27352e0, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2775
#3  0x00000037ef042c82 in g_main_loop_run (loop=0x27353c0) at gmain.c:2988
#4  0x00000037f0ca5774 in gdbus_shared_thread_func (data=<value optimized out>) at gdbusprivate.c:277
#5  0x00000037ef069446 in g_thread_create_proxy (data=0x27353e0) at gthread.c:1897
#6  0x00000037edc06d5b in start_thread (arg=0x7f0a9b19a700) at pthread_create.c:301
#7  0x00000037ed8e427d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f0a8b640700 (LWP 5815)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
#1  0x0000003517c72ca2 in wait (this=<value optimized out>, mutex=0x2c1ab00, time=30000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x2c1ab00, time=30000) at thread/qwaitcondition_unix.cpp:160
#3  0x0000003517c68cb8 in QThreadPoolThread::run (this=0x2c1acf0) at concurrent/qthreadpool.cpp:140
#4  0x0000003517c7264e in QThreadPrivate::start (arg=0x2c1acf0) at thread/qthread_unix.cpp:266
#5  0x00000037edc06d5b in start_thread (arg=0x7f0a8b640700) at pthread_create.c:301
#6  0x00000037ed8e427d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f0aa14b9840 (LWP 4246)):
[KCrash Handler]
#6  QString::operator= (this=0x98, other=...) at tools/qstring.cpp:1324
#7  0x00000035186d1e84 in QSslSocketBackendPrivate::startHandshake (this=0x386fd00) at ssl/qsslsocket_openssl.cpp:1197
#8  0x00000035186d3095 in QSslSocketBackendPrivate::transmit (this=<value optimized out>) at ssl/qsslsocket_openssl.cpp:927
#9  0x00000035186cd92d in QSslSocket::qt_metacall (this=0x288d700, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffde751a30) at .moc/release-shared/moc_qsslsocket.cpp:121
#10 0x0000003517d7002f in QMetaObject::activate (sender=0x2d16ef0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x0) at kernel/qobject.cpp:3272
#11 0x00000035186b51bf in QAbstractSocketPrivate::canReadNotification (this=0x2fa1030) at socket/qabstractsocket.cpp:639
#12 0x00000035186a2e41 in QReadNotifier::event (this=<value optimized out>, e=<value optimized out>) at socket/qnativesocketengine.cpp:1103
#13 0x0000003519fb4b64 in QApplicationPrivate::notify_helper (this=0x26a3140, receiver=0x38ceb70, e=0x7fffde751fd0) at kernel/qapplication.cpp:4396
#14 0x0000003519fb95da in QApplication::notify (this=<value optimized out>, receiver=0x38ceb70, e=0x7fffde751fd0) at kernel/qapplication.cpp:4277
#15 0x00007f0aa2068416 in KApplication::notify (this=0x7fffde7522c0, receiver=0x38ceb70, event=0x7fffde751fd0) at /usr/src/debug/kdelibs-4.5.2/kdeui/kernel/kapplication.cpp:310
#16 0x0000003517d5b7ac in QCoreApplication::notifyInternal (this=0x7fffde7522c0, receiver=0x38ceb70, event=0x7fffde751fd0) at kernel/qcoreapplication.cpp:732
#17 0x0000003517d86279 in sendEvent (source=0x26a68e0) at kernel/qcoreapplication.h:215
#18 socketNotifierSourceDispatch (source=0x26a68e0) at kernel/qeventdispatcher_glib.cpp:110
#19 0x00000037ef041e33 in g_main_dispatch (context=0x26a5920) at gmain.c:2149
#20 g_main_context_dispatch (context=0x26a5920) at gmain.c:2702
#21 0x00000037ef042610 in g_main_context_iterate (context=0x26a5920, block=1, dispatch=1, self=<value optimized out>) at gmain.c:2780
#22 0x00000037ef0428ad in g_main_context_iteration (context=0x26a5920, may_block=1) at gmain.c:2843
#23 0x0000003517d868af in QEventDispatcherGlib::processEvents (this=0x2657e80, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#24 0x000000351a0586ee in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#25 0x0000003517d5ab42 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149
#26 0x0000003517d5ad8c in QEventLoop::exec (this=0x7fffde752210, flags=...) at kernel/qeventloop.cpp:201
#27 0x0000003517d5f20b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#28 0x0000000000468a5c in main (argc=1, argv=0x7fffde753098) at /usr/src/debug/konversation-1.3.1/src/main.cpp:101

Reported using DrKonqi
Comment 1 Dario Andres 2010-12-15 14:27:52 UTC
[Comment from a bug triager]
There is a new report which could be related to this: bug 259951.
Regards
Comment 2 Peter Simonsson 2011-01-16 16:34:15 UTC
*** Bug 263317 has been marked as a duplicate of this bug. ***
Comment 3 Peter Simonsson 2011-01-16 16:35:48 UTC
*** Bug 259951 has been marked as a duplicate of this bug. ***
Comment 4 Peter Simonsson 2011-02-02 07:54:43 UTC
*** Bug 265157 has been marked as a duplicate of this bug. ***
Comment 5 Xavier Poirot 2011-09-09 14:20:44 UTC
Created attachment 63531 [details]
New crash information added by DrKonqi

konversation (1.3.1) on KDE Platform 4.7.1 (4.7.1) using Qt 4.7.4

- What I was doing when the application crashed:
Resuming computer from sleeping. Internet went on, I've been asked if I should trust the certificate, clicked yes and it crashed AGAIN (it always does on resuming)

- Unusual behavior I noticed:
Above.

- Custom settings of the application:
None, SSL connection

-- Backtrace (Reduced):
#8  0x00007f76618477ad in QSslSocket::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtNetwork.so.4
[...]
#12 0x00007f765f7f2ae4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#13 0x00007f765f7f7951 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#14 0x00007f76610f2c96 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#15 0x00007f766069489c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
Comment 6 Eike Hein 2011-10-20 06:25:48 UTC
*** Bug 284445 has been marked as a duplicate of this bug. ***
Comment 7 Eike Hein 2011-10-23 13:52:29 UTC
Git commit 3a6a2c2bd690c3d9d64e04fa16859e06844bd274 by Eike Hein.
Committed on 23/10/2011 at 13:37.
Pushed by hein into branch 'master'.

Treat a cancellation of the SSL error dialog as a deliberate disconnect.

CCBUG:256464

M  +3    -0    ChangeLog
M  +6    -19   src/irc/server.cpp
M  +0    -2    src/irc/server.h

http://commits.kde.org/konversation/3a6a2c2bd690c3d9d64e04fa16859e06844bd274
Comment 8 Eike Hein 2011-10-23 13:52:29 UTC
Git commit 1a785194cae9afa7b19669212c190da2cb349735 by Eike Hein.
Committed on 23/10/2011 at 15:47.
Pushed by hein into branch 'master'.

Handle disconnects while waiting on user response to SSL errors gracefully.

BUG:256464

M  +8    -0    ChangeLog
M  +1    -1    src/commit.h
M  +69   -19   src/irc/server.cpp
M  +2    -8    src/irc/server.h

http://commits.kde.org/konversation/1a785194cae9afa7b19669212c190da2cb349735