Bug 833141

Summary: openconnect-3.99-5.fc17 crash using new plasma-nm-0.9.0.3 build
Product: [Fedora] Fedora Reporter: Rex Dieter <rdieter>
Component: openconnectAssignee: David Woodhouse <dwmw2>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: dwmw2
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-18 19:18:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Rex Dieter 2012-06-18 17:20:46 UTC
Trying out openconnect-3.99-5.fc17 + rebuilt NetworkManager-openconnect-0.9.4.0-7.git20120612 (from git master/ branch) + plasma-nm-0.9.0.3.

Looks like a crash crash in openconnect calls ending in openconnect_close_https, attempting to connect to our vpn.


Backtrace:

Application: KDE Daemon (kded4), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f5e8945b880 (LWP 1274))]

Thread 3 (Thread 0x7f5e7983b700 (LWP 1283)):
#0  0x00007fff167a4827 in clock_gettime ()
#1  0x0000003e16c0410d in __GI_clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:116
#2  0x00000039874d14a4 in do_gettime (frac=0x7f5e7983aa58, sec=0x7f5e7983aa50) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00000039875a4d0d in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f5e74002860) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00000039875a5053 in QTimerInfoList::timerWait (this=0x7f5e74002860, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#6  0x00000039875a3bcc in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7f5e7983ab4c) at kernel/qeventdispatcher_glib.cpp:136
#7  0x00000039875a3c75 in timerSourcePrepare (source=source@entry=0x7f5e74002800, timeout=timeout@entry=0x7f5e7983ab4c) at kernel/qeventdispatcher_glib.cpp:169
#8  0x00000039500471ef in g_main_context_prepare (context=context@entry=0x7f5e740009a0, priority=priority@entry=0x7f5e7983ab98) at gmain.c:2836
#9  0x00000039500478db in g_main_context_iterate (context=context@entry=0x7f5e740009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3126
#10 0x0000003950047ad4 in g_main_context_iteration (context=0x7f5e740009a0, may_block=1) at gmain.c:3207
#11 0x00000039875a4506 in QEventDispatcherGlib::processEvents (this=0x7f5e740008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#12 0x000000398757513f in QEventLoop::processEvents (this=this@entry=0x7f5e7983acf0, flags=...) at kernel/qeventloop.cpp:149
#13 0x00000039875753c8 in QEventLoop::exec (this=0x7f5e7983acf0, flags=...) at kernel/qeventloop.cpp:204
#14 0x0000003987478650 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#15 0x0000003987555b4f in QInotifyFileSystemWatcherEngine::run (this=0x1228a80) at io/qfilesystemwatcher_inotify.cpp:248
#16 0x000000398747b5eb in QThreadPrivate::start (arg=0x1228a80) at thread/qthread_unix.cpp:307
#17 0x0000003e16807d14 in start_thread (arg=0x7f5e7983b700) at pthread_create.c:309
#18 0x0000003e15cf199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f5e67ffe700 (LWP 1681)):
#0  0x0000003e15ce8eef in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00000039500479b4 in g_main_context_poll (n_fds=1, fds=0x7f5e600029c0, timeout=202292, context=0x7f5e600009a0, priority=<optimized out>) at gmain.c:3440
#2  g_main_context_iterate (context=context@entry=0x7f5e600009a0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3141
#3  0x0000003950047ad4 in g_main_context_iteration (context=0x7f5e600009a0, may_block=1) at gmain.c:3207
#4  0x00000039875a4506 in QEventDispatcherGlib::processEvents (this=0x7f5e600008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#5  0x000000398757513f in QEventLoop::processEvents (this=this@entry=0x7f5e67ffdd20, flags=...) at kernel/qeventloop.cpp:149
#6  0x00000039875753c8 in QEventLoop::exec (this=0x7f5e67ffdd20, flags=...) at kernel/qeventloop.cpp:204
#7  0x0000003987478650 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#8  0x000000398747b5eb in QThreadPrivate::start (arg=0x145c7d0) at thread/qthread_unix.cpp:307
#9  0x0000003e16807d14 in start_thread (arg=0x7f5e67ffe700) at pthread_create.c:309
#10 0x0000003e15cf199d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f5e8945b880 (LWP 1274)):
[KCrash Handler]
#6  0x00007f5e66973109 in openconnect_close_https (vpninfo=vpninfo@entry=0x1ac5dc0, final=final@entry=1) at ../gnutls.c:1481
#7  0x00007f5e6696ff3e in openconnect_reset_ssl (vpninfo=vpninfo@entry=0x1ac5dc0) at ../library.c:175
#8  0x00007f5e6696ff69 in openconnect_vpninfo_free (vpninfo=0x1ac5dc0) at ../library.c:72
#9  0x00007f5e66b8c48b in OpenconnectAuthWorkerThread::~OpenconnectAuthWorkerThread (this=0x195d7e0, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.0.3/vpnplugins/openconnect/openconnectauthworkerthread.cpp:94
#10 0x00007f5e66b8c4a9 in OpenconnectAuthWorkerThread::~OpenconnectAuthWorkerThread (this=0x195d7e0, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.0.3/vpnplugins/openconnect/openconnectauthworkerthread.cpp:95
#11 0x00007f5e66b86677 in OpenconnectAuthWidget::~OpenconnectAuthWidget (this=0x163c730, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.0.3/vpnplugins/openconnect/openconnectauth.cpp:128
#12 0x00007f5e66b86729 in OpenconnectAuthWidget::~OpenconnectAuthWidget (this=0x163c730, __in_chrg=<optimized out>) at /usr/src/debug/networkmanagement-0.9.0.3/vpnplugins/openconnect/openconnectauth.cpp:130
#13 0x000000398758ad18 in QObject::event (this=0x163c730, e=<optimized out>) at kernel/qobject.cpp:1176
#14 0x000000360c2193da in QWidget::event (this=0x163c730, event=0x18805f0) at kernel/qwidget.cpp:8830
#15 0x000000360c1ca37c in QApplicationPrivate::notify_helper (this=this@entry=0xfb82a0, receiver=receiver@entry=0x163c730, e=e@entry=0x18805f0) at kernel/qapplication.cpp:4551
#16 0x000000360c1ce7fa in QApplication::notify (this=0x7fff166da200, receiver=0x163c730, e=0x18805f0) at kernel/qapplication.cpp:4412
#17 0x0000003706046736 in KApplication::notify (this=0x7fff166da200, receiver=0x163c730, event=0x18805f0) at /usr/src/debug/kdelibs-4.8.90/kdeui/kernel/kapplication.cpp:311
#18 0x00000039875763ee in QCoreApplication::notifyInternal (this=0x7fff166da200, receiver=receiver@entry=0x163c730, event=event@entry=0x18805f0) at kernel/qcoreapplication.cpp:915
#19 0x0000003987579ea1 in sendEvent (event=0x18805f0, receiver=0x163c730) at kernel/qcoreapplication.h:231
#20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xf804d0) at kernel/qcoreapplication.cpp:1539
#21 0x00000039875a4353 in sendPostedEvents () at kernel/qcoreapplication.h:236
#22 postEventSourceDispatch (s=s@entry=0xfb98c0) at kernel/qeventdispatcher_glib.cpp:279
#23 0x00000039500476e5 in g_main_dispatch (context=0xfb9800) at gmain.c:2539
#24 g_main_context_dispatch (context=context@entry=0xfb9800) at gmain.c:3075
#25 0x0000003950047a18 in g_main_context_iterate (context=context@entry=0xfb9800, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3146
#26 0x0000003950047ad4 in g_main_context_iteration (context=0xfb9800, may_block=1) at gmain.c:3207
#27 0x00000039875a44e6 in QEventDispatcherGlib::processEvents (this=0xf81990, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#28 0x000000360c26a2ee in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:207
#29 0x000000398757513f in QEventLoop::processEvents (this=this@entry=0x7fff166d9f80, flags=...) at kernel/qeventloop.cpp:149
#30 0x00000039875753c8 in QEventLoop::exec (this=0x7fff166d9f80, flags=...) at kernel/qeventloop.cpp:204
#31 0x000000398757a1b8 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#32 0x00000037088084e0 in kdemain (argc=1, argv=0x7fff166da348) at /usr/src/debug/kdelibs-4.8.90/kded/kded.cpp:924
#33 0x0000003e15c21735 in __libc_start_main (main=0x400770 <main(int, char**)>, argc=1, ubp_av=0x7fff166da348, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff166da338) at libc-start.c:226
#34 0x00000000004007a1 in _start ()

Comment 1 David Woodhouse 2012-06-18 18:13:10 UTC
Hah. All that time I spent testing various weird combinations of certificate and private key (including key from TPM and cert from PKCS#11, etc.), and I forgot to test the no-certificate case. Even on the connection I use that doesn't *need* a cert, I'd configured one anyway for testing.

I'll fix this shortly, after the baby is in bed...

Thanks for the testing.

Comment 2 David Woodhouse 2012-06-18 19:18:47 UTC
http://git.infradead.org/users/dwmw2/openconnect.git/commitdiff/2d08bf0a9

Fixed in 3.99-6