Bug 318255 - Kopete crashes when receiving a message while OTR is generating a private key
Summary: Kopete crashes when receiving a message while OTR is generating a private key
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Applications
Component: general (show other bugs)
Version: 1.4.2
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
: 328171 (view as bug list)
Depends on:
Blocks:
 
Reported: 2013-04-12 17:40 UTC by Martin Walch
Modified: 2014-05-08 22:15 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 4.12


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Walch 2013-04-12 17:40:57 UTC
Application: kopete (1.4.2)
KDE Platform Version: 4.10.2 (Compiled from sources)
Qt Version: 4.8.4
Operating System: Linux 3.7.10-gentoo x86_64
Distribution: "Gentoo Base System release 2.1"

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

The OTR plugin was just generating a private key when I received a message. This made Kopete crash.

The crash can be reproduced every time.

-- Backtrace:
Application: Kopete (kopete), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fbb19e2c780 (LWP 20500))]

Thread 4 (Thread 0x7fbb11105700 (LWP 20511)):
#0  0x00007fbb23ad5ed3 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fbb1e5a0ece in g_main_context_poll (n_fds=1, fds=0x7fbb0c002d80, timeout=-1, context=0x7fbb0c0009a0, priority=<optimized out>) at gmain.c:3440
#2  g_main_context_iterate (dispatch=1, block=<optimized out>, context=0x7fbb0c0009a0, self=<optimized out>) at gmain.c:3141
#3  g_main_context_iterate (context=0x7fbb0c0009a0, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3083
#4  0x00007fbb1e5a0fec in g_main_context_iteration (context=0x7fbb0c0009a0, may_block=1) at gmain.c:3207
#5  0x00007fbb251b12ae in QEventDispatcherGlib::processEvents (this=0x7fbb0c0008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007fbb25180a52 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007fbb25180cd7 in QEventLoop::exec (this=0x7fbb0c0013c0, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007fbb12187a03 in QCA::SyncThread::run (this=0x2890350) at support/syncthread.cpp:195
#9  0x00007fbb25081c1c in QThreadPrivate::start (arg=0x2890350) at thread/qthread_unix.cpp:338
#10 0x00007fbb23577006 in start_thread (arg=0x7fbb11105700) at pthread_create.c:305
#11 0x00007fbb23adebad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7fbb10904700 (LWP 20512)):
#0  __libc_disable_asynccancel () at ../nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S:99
#1  0x00007fbb23ad5ee7 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:89
#2  0x00007fbb1e5a0ece in g_main_context_poll (n_fds=1, fds=0x7fbb040013e0, timeout=810, context=0x7fbb040009a0, priority=<optimized out>) at gmain.c:3440
#3  g_main_context_iterate (dispatch=1, block=<optimized out>, context=0x7fbb040009a0, self=<optimized out>) at gmain.c:3141
#4  g_main_context_iterate (context=0x7fbb040009a0, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3083
#5  0x00007fbb1e5a0fec in g_main_context_iteration (context=0x7fbb040009a0, may_block=1) at gmain.c:3207
#6  0x00007fbb251b12ae in QEventDispatcherGlib::processEvents (this=0x7fbb040008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#7  0x00007fbb25180a52 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#8  0x00007fbb25180cd7 in QEventLoop::exec (this=0x7fbb040013c0, flags=...) at kernel/qeventloop.cpp:204
#9  0x00007fbb125d21df in XMPP::SyncThread::run (this=0x2897d40) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/protocols/jabber/libiris/iris/irisnet/corelib/netinterface.cpp:151
#10 0x00007fbb25081c1c in QThreadPrivate::start (arg=0x2897d40) at thread/qthread_unix.cpp:338
#11 0x00007fbb23577006 in start_thread (arg=0x7fbb10904700) at pthread_create.c:305
#12 0x00007fbb23adebad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7fbb09ced700 (LWP 20518)):
#0  0x00007fbb23ad14ad in write () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fbb23a6c623 in _IO_new_file_write (f=0x7fbb23d9b060 <_IO_2_1_stderr_>, data=0x7fbb09ce9bf0, n=44) at fileops.c:1281
#2  0x00007fbb23a6c518 in new_do_write (fp=0x7fbb23d9b060 <_IO_2_1_stderr_>, data=0x7fbb09ce9bf0 "select() error: Ung\303\274ltiger Dateideskriptor\n", to_do=44) at fileops.c:535
#3  0x00007fbb23a6cf46 in _IO_new_file_xsputn (n=44, data=<optimized out>, f=0x7fbb23d9b060 <_IO_2_1_stderr_>) at fileops.c:1375
#4  _IO_new_file_xsputn (f=0x7fbb23d9b060 <_IO_2_1_stderr_>, data=<optimized out>, n=44) at fileops.c:1297
#5  0x00007fbb23a40fbe in buffered_vfprintf (s=0x7fbb23d9b060 <_IO_2_1_stderr_>, format=<optimized out>, args=<optimized out>) at vfprintf.c:2288
#6  0x00007fbb23a3bb96 in _IO_vfprintf_internal (s=0x7fbb23d9b060 <_IO_2_1_stderr_>, format=0x7fbb12d36929 "select() error: %s\n", ap=0x7fbb09cec3f8) at vfprintf.c:1291
#7  0x00007fbb23af239e in ___vfprintf_chk (fp=0x7fbb23d9b060 <_IO_2_1_stderr_>, flag=1, format=<optimized out>, ap=<optimized out>) at vfprintf_chk.c:35
#8  0x00007fbb12cd0ff4 in vfprintf (__ap=0x7fbb09cec3f8, __fmt=0x7fbb12d36929 "select() error: %s\n", __stream=<optimized out>) at /usr/include/bits/stdio2.h:128
#9  _gcry_logv (level=30, fmt=0x7fbb12d36929 "select() error: %s\n", arg_ptr=0x7fbb09cec3f8) at misc.c:134
#10 0x00007fbb12cd1554 in _gcry_log_error (fmt=<optimized out>) at misc.c:218
#11 0x00007fbb12d15a85 in _gcry_rndlinux_gather_random (add=0x7fbb12d12fa0 <add_randomness>, origin=RANDOM_ORIGIN_EXTRAPOLL, length=36, level=<optimized out>) at rndlinux.c:155
#12 0x00007fbb12d12d00 in read_random_source (orgin=<optimized out>, length=<optimized out>, level=<optimized out>) at random-csprng.c:1283
#13 0x00007fbb12d13e5d in read_pool (level=2, length=20, buffer=0x7fbaf8003c28 "x") at random-csprng.c:980
#14 _gcry_rngcsprng_randomize (buffer=0x7fbaf8003c28, length=20, level=<optimized out>) at random-csprng.c:551
#15 0x00007fbb12d12a42 in _gcry_random_bytes_secure (nbytes=20, level=GCRY_VERY_STRONG_RANDOM) at random.c:203
#16 0x00007fbb12d05050 in generate (ret_factors=0x7fbb09cecc90, domain=0x7fbb09ceca50, transient_key=0, qbits=<optimized out>, nbits=<optimized out>, sk=0x7fbb09ceca20) at dsa.c:350
#17 dsa_generate_ext (algo=<optimized out>, nbits=<optimized out>, evalue=<optimized out>, genparms=<optimized out>, skey=0x7fbb09cecc20, retfactors=0x7fbb09cecc90, r_extrainfo=0x7fbb09cecc98) at dsa.c:837
#18 0x00007fbb12cde7d4 in pubkey_generate (r_extrainfo=0x7fbb09cecc98, retfactors=0x7fbb09cecc90, skey=0x7fbb09cecc20, genparms=0x7fbaf8002bb8, use_e=65537, nbits=1024, algorithm=17) at pubkey.c:564
#19 _gcry_pk_genkey (r_key=0x7fbb09ceccf0, s_parms=<optimized out>) at pubkey.c:3525
#20 0x00007fbb12f4d5df in otrl_privkey_generate_FILEp (us=0x244db60, privf=0x7fbaf8002930, accountname=0x7fbaf8002738 "mranderson@jabber.ccc.de", protocol=0x7fbaf80013d8 "Jabber") at privkey.c:440
#21 0x00007fbb12f4d748 in otrl_privkey_generate (us=0x244db60, filename=<optimized out>, accountname=0x7fbaf8002738 "mranderson@jabber.ccc.de", protocol=0x7fbaf80013d8 "Jabber") at privkey.c:412
#22 0x00007fbb131692d8 in KeyGenThread::run (this=<optimized out>) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/plugins/otr/otrlchatinterface.cpp:802
#23 0x00007fbb25081c1c in QThreadPrivate::start (arg=0x2f5e5a0) at thread/qthread_unix.cpp:338
#24 0x00007fbb23577006 in start_thread (arg=0x7fbb09ced700) at pthread_create.c:305
#25 0x00007fbb23adebad in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7fbb19e2c780 (LWP 20500)):
[KCrash Handler]
#6  0x00007fbb23a2bdd5 in __GI_raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#7  0x00007fbb23a2d2a5 in __GI_abort () at abort.c:91
#8  0x00007fbb23a24cfe in __assert_fail_base (fmt=<optimized out>, assertion=0x7fbb12d1f286 "*lock == ((ath_mutex_t) 0)", file=0x7fbb12d1f280 "ath.c", line=<optimized out>, function=<optimized out>) at assert.c:94
#9  0x00007fbb23a24da2 in __GI___assert_fail (assertion=0x7fbb12d1f286 "*lock == ((ath_mutex_t) 0)", file=0x7fbb12d1f280 "ath.c", line=193, function=0x7fbb12d1f2e0 <__PRETTY_FUNCTION__.4318> "_gcry_ath_mutex_lock") at assert.c:103
#10 0x00007fbb12cd88a2 in _gcry_ath_mutex_lock (lock=0x7fbb12f46d48 <pool_lock>) at ath.c:193
#11 0x00007fbb12d12cb0 in lock_pool () at random-csprng.c:298
#12 0x00007fbb12d1322e in initialize () at random-csprng.c:327
#13 0x00007fbb12d13b1c in _gcry_rngcsprng_randomize (buffer=0x2f13458, length=40, level=GCRY_STRONG_RANDOM) at random-csprng.c:514
#14 0x00007fbb12d12a42 in _gcry_random_bytes_secure (nbytes=40, level=GCRY_STRONG_RANDOM) at random.c:203
#15 0x00007fbb12f502b7 in otrl_dh_gen_keypair (groupid=<optimized out>, kp=0x23222b8) at dh.c:105
#16 0x00007fbb12f5463b in otrl_auth_start_v2 (auth=0x23222b0) at auth.c:115
#17 0x00007fbb12f5282e in otrl_message_receiving (us=0x244db60, ops=0x7fbb13376700 <ui_ops>, opdata=0x297db10, accountname=<optimized out>, protocol=<optimized out>, sender=0x25ea4d8 "flu@codingteam.net", message=0x25ec388 "?OTR?v2?\n<b>Flu@codingteam.net</b> has requested an <a href=\"http://otr.cypherpunks.ca/\">Off-the-Record private conversation</a>.  However, you do not have a plugin to support that.\nSee <a href=\"http:"..., newmessagep=0x7fff42f62a80, tlvsp=0x7fff42f62a88, add_appdata=0x0, data=0x0) at message.c:772
#18 0x00007fbb13169fe7 in OtrlChatInterface::decryptMessage (this=0x24f8d80, msg=0x7fff42f62bd0, accountId=..., protocol=..., contactId=..., chatSession=0x297db10) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/plugins/otr/otrlchatinterface.cpp:388
#19 0x00007fbb1338061a in OtrMessageHandler::handleMessage (this=0x2ef3fa0, event=0x2f244b0) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/plugins/otr/otrplugin.cpp:304
#20 0x00007fbb2519b29e in QObject::event (this=0x300f660, e=<optimized out>) at kernel/qobject.cpp:1194
#21 0x00007fbb24284534 in notify_helper (e=0x2785110, receiver=0x300f660, this=0x2100e50) at kernel/qapplication.cpp:4562
#22 QApplicationPrivate::notify_helper (this=0x2100e50, receiver=0x300f660, e=0x2785110) at kernel/qapplication.cpp:4534
#23 0x00007fbb24289293 in QApplication::notify (this=0x7fff42f64940, receiver=0x300f660, e=0x2785110) at kernel/qapplication.cpp:4423
#24 0x00007fbb25c84588 in KApplication::notify (this=0x7fff42f64940, receiver=0x300f660, event=0x2785110) at /var/tmp/portage/kde-base/kdelibs-4.10.2/work/kdelibs-4.10.2/kdeui/kernel/kapplication.cpp:311
#25 0x00007fbb25181fab in QCoreApplication::notifyInternal (this=0x7fff42f64940, receiver=0x300f660, event=0x2785110) at kernel/qcoreapplication.cpp:946
#26 0x00007fbb251858c9 in sendEvent (event=0x2785110, receiver=0x300f660) at kernel/qcoreapplication.h:231
#27 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x20c11f0) at kernel/qcoreapplication.cpp:1570
#28 0x00007fbb251b0e73 in sendPostedEvents () at kernel/qcoreapplication.h:236
#29 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#30 0x00007fbb1e5a0bf2 in g_main_dispatch (context=0x2102040) at gmain.c:2539
#31 g_main_context_dispatch (context=0x2102040) at gmain.c:3075
#32 0x00007fbb1e5a0f35 in g_main_context_iterate (dispatch=1, block=<optimized out>, context=0x2102040, self=<optimized out>) at gmain.c:3146
#33 g_main_context_iterate (context=0x2102040, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3083
#34 0x00007fbb1e5a0fec in g_main_context_iteration (context=0x2102040, may_block=0) at gmain.c:3207
#35 0x00007fbb251b1256 in QEventDispatcherGlib::processEvents (this=0x20c2ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#36 0x00007fbb24328026 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#37 0x00007fbb25185cd9 in QCoreApplication::processEvents (flags=..., maxtime=100) at kernel/qcoreapplication.cpp:1161
#38 0x00007fbb1316c14f in create_privkey (opdata=<optimized out>, accountname=0x24fed50 "mranderson@jabber.ccc.de", protocol=0x232db30 "Jabber") at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/plugins/otr/otrlchatinterface.cpp:108
#39 0x00007fbb12f52de9 in otrl_message_receiving (us=0x244db60, ops=0x7fbb13376700 <ui_ops>, opdata=0x297db10, accountname=0x24f8e58 "mranderson@jabber.ccc.de", protocol=0x2e85ca8 "Jabber", sender=0x2f0ae58 "flu@codingteam.net", message=0x2f58ae8 "?OTR:AAIRAAAAEBhQ3jOSANBSZefJcbV+YNcAAAHSLok4WF7G3Pypn95NJCzBmjL4Ji6evpWjuaYr6gL3/RzSB0BWEV7sDFXvjxMv0t4suDjonVWsZg08hk3Pz934lQEp4YeMN4IS4OG725xWUPq3NAbRJlfAft+qY2/NC9bY8EnYnsFNPuKzl/fe8pxH7T/cH4s8Zs3"..., newmessagep=0x7fff42f63d20, tlvsp=0x7fff42f63d28, add_appdata=0x0, data=0x0) at message.c:845
#40 0x00007fbb13169fe7 in OtrlChatInterface::decryptMessage (this=0x24f8d80, msg=0x7fff42f63e70, accountId=..., protocol=..., contactId=..., chatSession=0x297db10) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/plugins/otr/otrlchatinterface.cpp:388
#41 0x00007fbb1338061a in OtrMessageHandler::handleMessage (this=0x2ef3fa0, event=0x2aec540) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/plugins/otr/otrplugin.cpp:304
#42 0x00007fbb2519b29e in QObject::event (this=0x2f41940, e=<optimized out>) at kernel/qobject.cpp:1194
#43 0x00007fbb24284534 in notify_helper (e=0x2aec2d0, receiver=0x2f41940, this=0x2100e50) at kernel/qapplication.cpp:4562
#44 QApplicationPrivate::notify_helper (this=0x2100e50, receiver=0x2f41940, e=0x2aec2d0) at kernel/qapplication.cpp:4534
#45 0x00007fbb24289293 in QApplication::notify (this=0x7fff42f64940, receiver=0x2f41940, e=0x2aec2d0) at kernel/qapplication.cpp:4423
#46 0x00007fbb25c84588 in KApplication::notify (this=0x7fff42f64940, receiver=0x2f41940, event=0x2aec2d0) at /var/tmp/portage/kde-base/kdelibs-4.10.2/work/kdelibs-4.10.2/kdeui/kernel/kapplication.cpp:311
#47 0x00007fbb25181fab in QCoreApplication::notifyInternal (this=0x7fff42f64940, receiver=0x2f41940, event=0x2aec2d0) at kernel/qcoreapplication.cpp:946
#48 0x00007fbb251858c9 in sendEvent (event=0x2aec2d0, receiver=0x2f41940) at kernel/qcoreapplication.h:231
#49 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x20c11f0) at kernel/qcoreapplication.cpp:1570
#50 0x00007fbb251b0e73 in sendPostedEvents () at kernel/qcoreapplication.h:236
#51 postEventSourceDispatch (s=<optimized out>) at kernel/qeventdispatcher_glib.cpp:279
#52 0x00007fbb1e5a0bf2 in g_main_dispatch (context=0x2102040) at gmain.c:2539
#53 g_main_context_dispatch (context=0x2102040) at gmain.c:3075
#54 0x00007fbb1e5a0f35 in g_main_context_iterate (dispatch=1, block=<optimized out>, context=0x2102040, self=<optimized out>) at gmain.c:3146
#55 g_main_context_iterate (context=0x2102040, block=<optimized out>, dispatch=1, self=<optimized out>) at gmain.c:3083
#56 0x00007fbb1e5a0fec in g_main_context_iteration (context=0x2102040, may_block=1) at gmain.c:3207
#57 0x00007fbb251b1256 in QEventDispatcherGlib::processEvents (this=0x20c2ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#58 0x00007fbb24328026 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#59 0x00007fbb25180a52 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#60 0x00007fbb25180cd7 in QEventLoop::exec (this=0x7fff42f648c0, flags=...) at kernel/qeventloop.cpp:204
#61 0x00007fbb25185bc5 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1218
#62 0x0000000000415e2f in main (argc=1, argv=0x7fff42f657c8) at /var/tmp/portage/kde-base/kopete-4.10.2/work/kopete-4.10.2/kopete/kopete/main.cpp:105

This bug may be a duplicate of or related to bug 309987.

Possible duplicates by query: bug 315521, bug 311955, bug 309987, bug 303176, bug 301784.

Reported using DrKonqi
Comment 1 Michael Zanetti 2013-09-17 17:17:35 UTC
Git commit b977f1f701afd1f9192f35e0263f2f1c04bef53e by Michael Zanetti.
Committed on 24/06/2013 at 22:20.
Pushed by mzanetti into branch 'master'.

ported otr plugin to libotr 4.0.0
Related: bug 195328, bug 218570, bug 298681, bug 304105, bug 306276, bug 309987, bug 204502

M  +1    -3    CMakeLists.txt
M  +5    -5    cmake/modules/FindLibOTR.cmake
M  +17   -16   plugins/otr/authenticationwizard.cpp
M  +1    -1    plugins/otr/authenticationwizard.h
M  +1    -1    plugins/otr/kopete_otr.desktop
M  +1    -1    plugins/otr/otrguiclient.cpp
M  +1    -1    plugins/otr/otrguiclient.h
M  +455  -316  plugins/otr/otrlchatinterface.cpp
M  +42   -7    plugins/otr/otrlchatinterface.h
M  +2    -6    plugins/otr/otrlconfinterface.cpp
M  +1    -1    plugins/otr/otrlconfinterface.h
M  +22   -68   plugins/otr/otrplugin.cpp
M  +1    -1    plugins/otr/otrplugin.h
M  +1    -1    plugins/otr/otrpreferences.cpp
M  +1    -1    plugins/otr/otrpreferences.h
M  +1    -1    plugins/otr/privkeypopup.cpp
M  +1    -1    plugins/otr/privkeypopup.h

http://commits.kde.org/kopete/b977f1f701afd1f9192f35e0263f2f1c04bef53e
Comment 2 Jekyll Wu 2013-11-28 13:02:48 UTC
*** Bug 328171 has been marked as a duplicate of this bug. ***
Comment 3 t.schmittlauch 2014-04-18 09:56:11 UTC
Which release includes this fix? I still experience this crash in latest openSUSE 13.1 with Kopete 1.6.2
Comment 4 Christoph Feck 2014-05-08 22:15:46 UTC
You need KDE 4.12.x together with libotr 4.0.0 to have this Kopete crash fixed.