Application: kmid (2.3.0) KDE Platform Version: 4.4.3 (KDE 4.4.3) Qt Version: 4.6.2 Operating System: Linux 2.6.32.12-115.fc12.x86_64 x86_64 Distribution: "Fedora release 12 (Constantine)" -- Information about the crash: Found a crash in testing https://admin.fedoraproject.org/updates/drumstick-0.3.1-2.fc12,kmid2-2.3.0-1.fc12 I have a giant directory of 500+ midi files http://nielsmayer.com/megatrade-midi.tgz that I've been trying to play with kmid2. This crash can be reliably reproduced two ways: (1) in the unpacked directory 'megatrade-midi' (see .tgz file link above), do 'kmid *.mid'.... the first file will play just fine. But if you click next one or more times, you get a crash. (2) In directory megatrade-midi , just to 'kmid' (no args). Then go to File->Open it'll either crash immediately, or will crash on clicking a file in the directory. I'm not sure if this bug is due to any particular MIDI data in the directory that is problematic, or if its caused by the large number of MIDI files in a single directory. The crash can be reproduced every time. -- Backtrace: Application: KMid (kmid), signal: Aborted __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97 97 2: movl %edx, %eax [Current thread is 1 (Thread 0x7f84fa3c9840 (LWP 7847))] Thread 3 (Thread 0x7f84f202f710 (LWP 7848)): [KCrash Handler] #5 0x0000003686e326d5 in raise (sig=<value optimized out>) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64 #6 0x0000003686e33eb5 in abort () at abort.c:92 #7 0x0000003686e6f0c3 in __libc_message (do_abort=2, fmt=0x3686f3e150 "*** glibc detected *** %s: %s: 0x%s ***\n") at ../sysdeps/unix/sysv/linux/libc_fatal.c:186 #8 0x0000003686e74a56 in malloc_printerr (action=3, str=0x3686f3e4d8 "double free or corruption (fasttop)", ptr=<value optimized out>) at malloc.c:6264 #9 0x0000003686e7a030 in _int_realloc (av=0x3687174e80, oldp=0x287d210, oldsize=<value optimized out>, nb=<value optimized out>) at malloc.c:5320 #10 0x0000003686e7a227 in __libc_realloc (oldmem=0x287d220, bytes=84) at malloc.c:3821 #11 0x0000003760a9f4cc in alloc_tmpbuf (seq=0x1066930, len=<value optimized out>) at seq.c:3889 #12 0x0000003760a9f59e in snd_seq_event_output_direct (seq=0x1066930, ev=0x7f84ec0067a4) at seq.c:3921 #13 0x00007f84f2056d02 in drumstick::MidiClient::outputDirect (this=0x10551c0, ev=<value optimized out>, async=<value optimized out>, timeout=-1) at /usr/src/debug/drumstick-0.3.1/library/src/alsaclient.cpp:998 #14 0x00007f84f249d738 in KMid::ALSAMIDIObject::handleSequencerEvent (this=0x104dee0, ev=0x7f84ec006790) at /usr/src/debug/kmid-2.3.0/alsa/alsamidiobject.cpp:259 #15 0x00007f84f205485c in drumstick::MidiClient::doEvents (this=0x10551c0) at /usr/src/debug/drumstick-0.3.1/library/src/alsaclient.cpp:648 #16 0x00007f84f2056672 in drumstick::MidiClient::SequencerInputThread::run (this=0x104adf0) at /usr/src/debug/drumstick-0.3.1/library/src/alsaclient.cpp:1736 #17 0x00000032bc0709a5 in QThreadPrivate::start (arg=0x104adf0) at thread/qthread_unix.cpp:248 #18 0x0000003687a06a3a in start_thread (arg=0x7f84f202f710) at pthread_create.c:297 #19 0x0000003686ede62d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #20 0x0000000000000000 in ?? () Thread 2 (Thread 0x7f84f0c2d710 (LWP 7855)): #0 __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97 #1 0x0000003686e7b6e8 in _L_lock_13351 () at hooks.c:126 #2 0x0000003686e7a216 in __libc_realloc (oldmem=0x287d220, bytes=56) at malloc.c:3813 #3 0x0000003760a9f4cc in alloc_tmpbuf (seq=0x1066930, len=<value optimized out>) at seq.c:3889 #4 0x0000003760a9f59e in snd_seq_event_output_direct (seq=0x1066930, ev=0x117bf24) at seq.c:3921 #5 0x00007f84f20652c0 in drumstick::SequencerOutputThread::sendSongEvent (this=0xfa1d40, ev=<value optimized out>) at /usr/src/debug/drumstick-0.3.1/library/src/playthread.cpp:128 #6 0x00007f84f20650e3 in drumstick::SequencerOutputThread::run (this=0xfa1d40) at /usr/src/debug/drumstick-0.3.1/library/src/playthread.cpp:189 #7 0x00000032bc0709a5 in QThreadPrivate::start (arg=0xfa1d40) at thread/qthread_unix.cpp:248 #8 0x0000003687a06a3a in start_thread (arg=0x7f84f0c2d710) at pthread_create.c:297 #9 0x0000003686ede62d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #10 0x0000000000000000 in ?? () Thread 1 (Thread 0x7f84fa3c9840 (LWP 7847)): #0 __lll_lock_wait_private () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:97 #1 0x0000003686e7b3f5 in _L_lock_10973 () at hooks.c:126 #2 0x0000003686e78fa2 in __libc_malloc (bytes=234194685568) at malloc.c:3657 #3 0x00000032bc0b158d in QString::QString (this=0x7fff87d75140, ch=<value optimized out>) at tools/qstring.cpp:1048 #4 0x0000003d3e7b68ae in KuitSemanticsPrivate::semanticToVisualText (this=<value optimized out>, text_=<value optimized out>, fmtExp_=<value optimized out>, fmtImp_=<value optimized out>) at /usr/src/debug/kdelibs-4.4.3/kdecore/localization/kuitsemantics.cpp:1209 #5 0x0000003d3e7b7c96 in KuitSemanticsPrivate::format (this=0xd4a3e0, text=..., ctxt=<value optimized out>) at /usr/src/debug/kdelibs-4.4.3/kdecore/localization/kuitsemantics.cpp:905 #6 0x0000003d3e7b7d5c in KuitSemantics::format (this=<value optimized out>, text=<value optimized out>, ctxt=<value optimized out>) at /usr/src/debug/kdelibs-4.4.3/kdecore/localization/kuitsemantics.cpp:1584 #7 0x0000003d3e794fc6 in KLocalizedStringPrivate::postFormat (this=<value optimized out>, text=<value optimized out>, lang=..., lscr=<value optimized out>, ctxt=...) at /usr/src/debug/kdelibs-4.4.3/kdecore/localization/klocalizedstring.cpp:477 #8 0x0000003d3e795881 in KLocalizedStringPrivate::toString (this=0x22d36d0, locale=<value optimized out>) at /usr/src/debug/kdelibs-4.4.3/kdecore/localization/klocalizedstring.cpp:296 #9 0x0000003d3e7962f8 in KLocalizedString::toString (this=0x7fff87d75730) at /usr/src/debug/kdelibs-4.4.3/kdecore/localization/klocalizedstring.cpp:205 #10 0x000000000041d997 in i18nc<QString, QString> (this=0xd519a0, newState=<value optimized out>, stateName=<value optimized out>) at /usr/include/kde4/klocalizedstring.h:794 #11 KMid2::updateState (this=0xd519a0, newState=<value optimized out>, stateName=<value optimized out>) at /usr/src/debug/kmid-2.3.0/src/kmid2.cpp:530 #12 0x000000000042b11f in KMid2::slotUpdateState (this=0xd519a0, newState=<value optimized out>) at /usr/src/debug/kmid-2.3.0/src/kmid2.cpp:508 #13 0x000000000042d21f in KMid2::qt_metacall (this=0xd519a0, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff87d75a00) at /usr/src/debug/kmid-2.3.0/x86_64-redhat-linux-gnu/src/kmid2.moc:167 #14 0x00000032bc16a2af in QMetaObject::activate (sender=0x104dee0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff87d75a00) at kernel/qobject.cpp:3293 #15 0x00007f84fa3ea2ac in KMid::MIDIObject::stateChanged (this=<value optimized out>, _t1=PlayingState, _t2=StoppedState) at /usr/src/debug/kmid-2.3.0/x86_64-redhat-linux-gnu/library/midiobject.moc:157 #16 0x00007f84f249c784 in KMid::ALSAMIDIObject::play (this=0x104dee0) at /usr/src/debug/kmid-2.3.0/alsa/alsamidiobject.cpp:413 #17 0x00000000004286e5 in KMid2::play (this=0xd519a0) at /usr/src/debug/kmid-2.3.0/src/kmid2.cpp:539 #18 0x000000000042b840 in KMid2::slotSourceChanged (this=0xd519a0, src=<value optimized out>) at /usr/src/debug/kmid-2.3.0/src/kmid2.cpp:455 #19 0x000000000042d3ee in KMid2::qt_metacall (this=0xd519a0, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff87d75c10) at /usr/src/debug/kmid-2.3.0/x86_64-redhat-linux-gnu/src/kmid2.moc:184 #20 0x00000032bc16a2af in QMetaObject::activate (sender=0x104dee0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff87d75c10) at kernel/qobject.cpp:3293 #21 0x00007f84fa3ea1a5 in KMid::MIDIObject::currentSourceChanged (this=<value optimized out>, _t1=...) at /usr/src/debug/kmid-2.3.0/x86_64-redhat-linux-gnu/library/midiobject.moc:190 #22 0x00007f84f249eb8d in KMid::ALSAMIDIObject::openFile (this=0x104dee0, fileName=...) at /usr/src/debug/kmid-2.3.0/alsa/alsamidiobject.cpp:689 #23 0x000000000041e0ee in KMid2::next (this=0xd519a0) at /usr/src/debug/kmid-2.3.0/src/kmid2.cpp:970 #24 0x000000000042d1c0 in KMid2::qt_metacall (this=0xd519a0, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff87d75e00) at /usr/src/debug/kmid-2.3.0/x86_64-redhat-linux-gnu/src/kmid2.moc:164 #25 0x00000032bc16a2af in QMetaObject::activate (sender=0xf2c960, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff87d75e00) at kernel/qobject.cpp:3293 #26 0x00000032bc7a5b52 in QAction::triggered (this=<value optimized out>, _t1=false) at .moc/release-shared/moc_qaction.cpp:263 #27 0x00000032bc7a728b in QAction::activate (this=0xf2c960, event=<value optimized out>) at kernel/qaction.cpp:1255 #28 0x00000032bcb2fd3a in QAbstractButtonPrivate::click (this=0xed8ee0) at widgets/qabstractbutton.cpp:528 #29 0x00000032bcb2ffec in QAbstractButton::mouseReleaseEvent (this=0xf7c080, e=0x7fff87d76760) at widgets/qabstractbutton.cpp:1121 #30 0x00000032bcbea8ea in QToolButton::mouseReleaseEvent (this=<value optimized out>, e=<value optimized out>) at widgets/qtoolbutton.cpp:721 #31 0x00000032bc7f5b3a in QWidget::event (this=0xf7c080, event=0x7fff87d76760) at kernel/qwidget.cpp:7998 #32 0x00000032bc7aa9dc in QApplicationPrivate::notify_helper (this=0xc4a440, receiver=0xf7c080, e=0x7fff87d76760) at kernel/qapplication.cpp:4300 #33 0x00000032bc7b127d in QApplication::notify (this=<value optimized out>, receiver=0xf7c080, e=0x7fff87d76760) at kernel/qapplication.cpp:3865 #34 0x0000003d3ee06856 in KApplication::notify (this=0x7fff87d77450, receiver=0xf7c080, event=0x7fff87d76760) at /usr/src/debug/kdelibs-4.4.3/kdeui/kernel/kapplication.cpp:302 #35 0x00000032bc15774c in QCoreApplication::notifyInternal (this=0x7fff87d77450, receiver=0xf7c080, event=0x7fff87d76760) at kernel/qcoreapplication.cpp:704 #36 0x00000032bc7b046e in sendEvent (receiver=0xf7c080, event=0x7fff87d76760, alienWidget=0xf7c080, nativeWidget=0xfa6620, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../src/corelib/kernel/qcoreapplication.h:215 #37 QApplicationPrivate::sendMouseEvent (receiver=0xf7c080, event=0x7fff87d76760, alienWidget=0xf7c080, nativeWidget=0xfa6620, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, spontaneous=true) at kernel/qapplication.cpp:2965 #38 0x00000032bc822405 in QETWidget::translateMouseEvent (this=0xfa6620, event=<value optimized out>) at kernel/qapplication_x11.cpp:4373 #39 0x00000032bc821128 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff87d77080) at kernel/qapplication_x11.cpp:3506 #40 0x00000032bc849d82 in x11EventSourceDispatch (s=0xc4e270, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146 #41 0x0000003688a3923e in g_main_dispatch (context=0xc4d120) at gmain.c:1960 #42 IA__g_main_context_dispatch (context=0xc4d120) at gmain.c:2513 #43 0x0000003688a3cc28 in g_main_context_iterate (context=0xc4d120, block=<value optimized out>, dispatch=<value optimized out>, self=<value optimized out>) at gmain.c:2591 #44 0x0000003688a3cd4a in IA__g_main_context_iteration (context=0xc4d120, may_block=1) at gmain.c:2654 #45 0x00000032bc17d063 in QEventDispatcherGlib::processEvents (this=0xc2ac60, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #46 0x00000032bc849a4e in QGuiEventDispatcherGlib::processEvents (this=<value optimized out>, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #47 0x00000032bc156192 in QEventLoop::processEvents (this=<value optimized out>, flags=...) at kernel/qeventloop.cpp:149 #48 0x00000032bc15645c in QEventLoop::exec (this=0x7fff87d773b0, flags=...) at kernel/qeventloop.cpp:201 #49 0x00000032bc158749 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981 #50 0x000000000042ff44 in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/kmid-2.3.0/src/main.cpp:63 Possible duplicates by query: bug 228333. Reported using DrKonqi
I noticed the following on stdout while crashing. I've seen this doublefree error several times actually: gnulem-204-.../Music/megatrade-midi> kmid *.mid kmid(7847)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(7847)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(7847)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(7847)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! *** glibc detected *** kmid: double free or corruption (fasttop): 0x000000000287d220 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3686e74a56] /lib64/libc.so.6[0x3686e7a030] /lib64/libc.so.6(realloc+0xe7)[0x3686e7a227] /lib64/libasound.so.2[0x3760a9f4cc] /lib64/libasound.so.2(snd_seq_event_output_direct+0x6e)[0x3760a9f59e] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick10MidiClient12outputDirectEPNS_14SequencerEventEbi+0x92)[0x7f84f2056d02] /usr/lib64/kde4/kmid_alsa.so(+0x11738)[0x7f84f249d738] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick10MidiClient8doEventsEv+0x6c)[0x7f84f205485c] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick10MidiClient20SequencerInputThread3runEv+0xc2)[0x7f84f2056672] /usr/lib64/libQtCore.so.4[0x32bc0709a5] /lib64/libpthread.so.0[0x3687a06a3a] /lib64/libc.so.6(clone+0x6d)[0x3686ede62d] ======= Memory map: ======== 00400000-00447000 r-xp 00000000 fd:00 14078 /usr/bin/kmid 00646000-00649000 rw-p 00046000 fd:00 14078 /usr/bin/kmid 00c24000-02be6000 rw-p 00000000 00:00 0 [heap] 32bb400000-32bb434000 r-xp 00000000 fd:00 39174 /usr/lib64/libfontconfig.so.1.4.4 32bb434000-32bb634000 ---p 00034000 fd:00 39174 /usr/lib64/libfontconfig.so.1.4.4 32bb634000-32bb636000 rw-p 00034000 fd:00 39174 /usr/lib64/libfontconfig.so.1.4.4 32bb800000-32bb804000 r-xp 00000000 fd:00 23992 /lib64/libgthread-2.0.so.0.2200.5 32bb804000-32bba03000 ---p 00004000 fd:00 23992 /lib64/libgthread-2.0.so.0.2200.5 32bba03000-32bba04000 rw-p 00003000 fd:00 23992 /lib64/libgthread-2.0.so.0.2200.5 32bc000000-32bc25a000 r-xp 00000000 fd:00 26581 /usr/lib64/libQtCore.so.4.6.2 32bc25a000-32bc459000 ---p 0025a000 fd:00 26581 /usr/lib64/libQtCore.so.4.6.2 32bc459000-32bc465000 rw-p 00259000 fd:00 26581 /usr/lib64/libQtCore.so.4.6.2 32bc600000-32bcfe2000 r-xp 00000000 fd:00 41672 /usr/lib64/libQtGui.so.4.6.2 32bcfe2000-32bd1e1000 ---p 009e2000 fd:00 41672 /usr/lib64/libQtGui.so.4.6.2 32bd1e1000-32bd226000 rw-p 009e1000 fd:00 41672 /usr/lib64/libQtGui.so.4.6.2 32bd226000-32bd229000 rw-p 00000000 00:00 0 32bf000000-32bf06f000 r-xp 00000000 fd:00 41949 /usr/lib64/libQtDBus.so.4.6.2 32bf06f000-32bf26f000 ---p 0006f000 fd:00 41949 /usr/lib64/libQtDBus.so.4.6.2 32bf26f000-32bf271000 rw-p 0006f000 fd:00 41949 /usr/lib64/libQtDBus.so.4.6.2 32c4000000-32c403f000 r-xp 00000000 fd:00 41692 /usr/lib64/libQtXml.so.4.6.2 32c403f000-32c423f000 ---p 0003f000 fd:00 41692 /usr/lib64/libQtXml.so.4.6.2 32c423f000-32c4241000 rw-p 0003f000 fd:00 41692 /usr/lib64/libQtXml.so.4.6.2 33c1a00000-33c1ab3000 r-xp 00000000 fd:00 664 /lib64/libkrb5.so.3.3 33c1ab3000-33c1cb3000 ---p 000b3000 fd:00 664 /lib64/libkrb5.so.3.3 33c1cb3000-33c1cbd000 rw-p 000b3000 fd:00 664 /lib64/libkrb5.so.3.3 33c1e00000-33c1e2a000 r-xp 00000000 fd:00 660 /lib64/libk5crypto.so.3.1 33c1e2a000-33c202a000 ---p 0002a000 fd:00 660 /lib64/libk5crypto.so.3.1 33c202a000-33c202c000 rw-p 0002a000 fd:00 660 /lib64/libk5crypto.so.3.1 33c2200000-33c222d000 r-xp 00000000 fd:00 676 /lib64/libgssapi_krb5.so.2.2 33c222d000-33c242d000 ---p 0002d000 fd:00 676 /lib64/libgssapi_krb5.so.2.2 33c242d000-33c242f000 rw-p 0002d000 fd:00 676 /lib64/libgssapi_krb5.so.2.2 33c2600000-33c2608000 r-xp 00000000 fd:00 659 /lib64/libkrb5support.so.0.1 33c2608000-33c2808000 ---p 00008000 fd:00 659 /lib64/libkrb5support.so.0.1 33c2808000-33c2809000 rw-p 00008000 fd:00 659 /lib64/libkrb5support.so.0.1 350c400000-350c436000 r-xp 00000000 fd:00 55098 /usr/lib64/libstreams.so.0.7.2 350c436000-350c636000 ---p 00036000 fd:00 55098 /usr/lib64/libstreams.so.0.7.2 350c636000-350c638000 rw-p 00036000 fd:00 55098 /usr/lib64/libstreams.so.0.7.2 350ce00000-350ce6e000 r-xp 00000000 fd:00 39755 /usr/lib64/libstreamanalyzer.so.0.7.2 350ce6e000-350d06e000 ---p 0006e000 fd:00 39755 /usr/lib64/libstreamanalyzer.so.0.7.2 350d06e000-350d072000 rw-p 0006e000 fd:00 39755 /usr/lib64/libstreamanalyzer.so.0.7.2 362f000000-362f010000 r-xp 00000000 fd:00 40404 /lib64/libbz2.so.1.0.4 362f010000-362f20f000 ---p 00010000 fd:00 40404 /lib64/libbz2.so.1.0.4 362f20f000-362f211000 rw-p 0000f000 fd:00 40404 /lib64/libbz2.so.1.0.4 3686a00000-3686a1e000 r-xp 00000000 fd:00 15447 /lib64/ld-2.11.1.so 3686c1d000-3686c1e000 r--p 0001d000 fd:00 15447 /lib64/ld-2.11.1.so 3686c1e000-3686c1f000 rw-p 0001e000 fd:00 15447 /lib64/ld-2.11.1.so 3686c1f000-3686c20000 rw-p 00000000 00:00 0 3686e00000-3686f6f000 r-xp 00000000 fd:00 15977 /lib64/libc-2.11.1.so 3686f6f000-368716f000 ---p 0016f000 fd:00 15977 /lib64/libc-2.11.1.so 368716f000-3687173000 r--p 0016f000 fd:00 15977 /lib64/libc-2.11.1.so 3687173000-3687174000 rw-p 00173000 fd:00 15977 /lib64/libc-2.11.1.so 3687174000-3687179000 rw-p 00000000 00:00 0 3687200000-3687283000 r-xp 00000000 fd:00 21965 /lib64/libm-2.11.1.so 3687283000-3687482000 ---p 00083000 fd:00 21965 /lib64/libm-2.11.1.so 3687482000-3687483000 r--p 00082000 fd:00 21965 /lib64/libm-2.11.1.so 3687483000-3687484000 rw-p 00083000 fd:00 21965 /lib64/libm-2.11.1.so 3687600000-3687602000 r-xp 00000000 fd:00 16846 /lib64/libdl-2.11.1.so 3687602000-3687802000 ---p 00002000 fd:00 16846 /lib64/libdl-2.11.1.soKCrash: Application 'kmid' crashing... sock_file=/home/npm/.kde/socket-gnulem/kdeinit4__0 Suspended (signal)
I'm not sure this is due to the quantity of the files, to me it looks more like this is the fault of the content of the files themselves.
I'm pretty sure it is the quantity of files. In the invocations of 'kmid' below, the second crash happened when doing "next" on the first file. The difference in invocations is the number of files provided (of course, it's possible a file in the B's or C's or D's could be causing memory corruption -- feel free to try on your own copy of the datafiles causing the crash: http://nielsmayer.com/megatrade-midi.tgz ) gnulem-118-.../Music/megatrade-midi> ll [AaBbCcDd]*.mid | wc -l 115 gnulem-119-.../Music/megatrade-midi> ll [Aa]*.mid | wc -l 26 gnulem-116-.../Music/megatrade-midi> kmid [Aa]*.mid kmid(10163)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(10163)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(10163)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(10163)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! kmid(10163)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: kDebugStream called after destruction (from void KDirWatchPrivate::removeEntry(KDirWatch*, KDirWatchPrivate::Entry*, KDirWatchPrivate::Entry*) file /builddir/build/BUILD/kdelibs-4.4.3/kio/kio/kdirwatch.cpp line 950) Cancelled INotify (fd 11, 1) for "/home/npm/.local/share//user-places.xbel" (above kmid quit successfully after browsing numerous files out of the 26) (next attempt hangs (needs to be ^C'd) on first "next" button-click). gnulem-117-.../Music/megatrade-midi> kmid [AaBbCcDd]*.mid kmid(10178)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(10178)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(10178)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(10178)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! *** glibc detected *** kmid: malloc(): memory corruption (fast): 0x0000000003b25ec0 *** ^C .............
Created attachment 47613 [details] New crash information added by DrKonqi Here, I'm able to reproduce the crash with just three of the 500+ files. I have a hunch this has to do with " " character in the files, or with character encoding issues. FYI, mine is set to: gnulem-149-.../Music/megatrade-midi> echo $LANG $GDM_LANG en_US.UTF-8 en_US.UTF-8 This crash occurred with the above char encoding and three files on the command line: kmid 'Absolute Zero.mid' 'A BedTime Story.mid' 'A Changing World.mid' It occurred by doing "next file" till hitting the end of files, then "prev file" to go back to beginning of files, which caused the crash. The crashes always occur from doing "next" or "prev". Running it again with a different LANG environment produces different results. Now I can do "next" or "prev" through the list at least twice, and then it eventually hangs (not crashes) with an error indicating memory corruption; gnulem-148-.../Music/megatrade-midi> env LANG='' GDM_LANG='' kmid 'Absolute Zero.mid' 'A BedTime Story.mid' 'A Changing World.mid' kmid(15169)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(15169)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(15169)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(15169)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! *** glibc detected *** kmid: corrupted double-linked list: 0x0000000003db9a70 *** ^C
In my laptop, $LANG is "en_US.UTF-8". Running kmid from the command line prompt with those three files ('Absolute Zero.mid', 'A BedTime Story.mid' and 'A Changing World.mid') works just fine. I can press the next/prev song buttons many times, without a crash or hung. Same results using the whole 500 files set. I'm using a KDE4 desktop, including kdm and the kwin window manager. Is your environment the same, or maybe you are using different desktop software?
I can reproduce this crash consistently every single time I run kmid. It is possible that the bug causing https://bugs.kde.org/show_bug.cgi?id=240394 corrupts malloc as soon as the program starts, and that this failure is happening because switching to a new file causes a new set of free/malloc over corrupted data. For example, even without hitting "next" or "prev" and just letting kmid play through the list of files in the directory, it'll eventually crash on it's own with: ...................... b64/libfontconfig.so.1.4.4 38eba34000-38ebc34000 ---p 00034000 fd:00 16846 /usr/lib64/libfontconfig.so.1.4.4 38ebc34000-38ebc36000 rw-p 00034000 fd:00 16846 /usr/lib64/libfontconfig.so.1.4.4 38ebe00000-38ebe04000 r-xp 00000000 fd:00 49958 /lib64/libgthread-2.0.so.0.2200.5 38ebe04000-38ec003000 ---p 00004000 fd:00 49958 /lib64/libgthread-2.0.so.0.2200.5KCrash: Application 'kmid' crashing... sock_file=/home/npm/.kde/socket-gnulem/kdeinit4__0 Suspended (signal) .............. I'm running on a system that has both Gnome and KDE installed; for the last few weeks I've switched to the KDE Desktop, kwin, etc. I'm still running a few gnome apps like evolution, gnote, abrt-applet. I have the following KDE packages installed: kdepimlibs-akonadi-4.4.3-1.fc12.1.x86_64 kdelibs-debuginfo-4.4.3-2.fc12.x86_64 kdetv-0.8.9-13.fc12.x86_64 kdebase-workspace-4.4.3-1.fc12.1.x86_64 kde-plasma-smooth-tasks-0.0.1-0.1.wip20091206.fc12.1.x86_64 kdelibs-common-4.4.3-2.fc12.x86_64 kdesdk-4.4.3-1.fc12.1.x86_64 kdelibs3-3.5.10-21.fc12.x86_64 kde-plasma-xbar-0.1-0.2.20090828svn668.fc12.x86_64 kdemultimedia-libs-4.4.3-1.fc12.1.x86_64 kdeplasma-addons-libs-4.4.3-1.fc12.1.x86_64 kde-settings-4.3-18.noarch kde-plasma-qstardict-0.13.1-3.fc12.x86_64 kde-plasma-runcommand-2.1-1.fc12.x86_64 kdeutils-printer-applet-4.4.3-1.fc12.1.x86_64 kdesdk-libs-4.4.3-1.fc12.1.x86_64 kdelibs-4.4.3-2.fc12.x86_64 kdebase-runtime-4.4.3-1.fc12.1.x86_64 kdebase-4.4.3-2.fc12.1.x86_64 kdebase-workspace-libs-4.4.3-1.fc12.1.x86_64 kdeplasma-addons-4.4.3-1.fc12.1.x86_64 kdeadmin-4.4.3-1.fc12.1.x86_64 kde-plasma-translatoid-1.1.90_20100122svn-2.fc12.x86_64 kde-plasma-quickaccess-0.8.1-2.fc12.x86_64 qalculate-kde-0.9.6-9.fc12.x86_64 constantine-kde-theme-12.1.0-1.fc12.noarch kdebase-libs-4.4.3-2.fc12.1.x86_64 subversion-kde-1.6.9-1.fc12.x86_64 kdegraphics-libs-4.4.3-1.fc12.1.x86_64 kdemultimedia-4.4.3-1.fc12.1.x86_64 kde-plasma-yawp-0.3.2-2.fc12.x86_64 kdepimlibs-4.4.3-1.fc12.1.x86_64 kde-filesystem-4-33.fc12.noarch kdesdk-utils-4.4.3-1.fc12.1.x86_64 kdebase-runtime-libs-4.4.3-1.fc12.1.x86_64 constantine-backgrounds-kde-12.1.1-2.fc12.noarch kdenlive-0.7.7.1-1.fc12.x86_64 Hardware: AMD Phenom II 965 (Quad core 3.4G -- have you tested on a quad core? Perhaps there's a threading issue visible on 4 cores that doesn't happen on 2?) Environment: here's all my environment variables: VENDOR=unknown TERM=xterm SHLVL=3 KDEDIRS=/usr QTLIB=/usr/lib64/qt-3.3/lib GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/npm/.gtkrc-2.0::/home/npm/.kde/share/config/gtkrc-2.0 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass GNOME_KEYRING_SOCKET=/tmp/keyring-8Cy95V/socket IMSETTINGS_INTEGRATE_DESKTOP=yes HOST=gnulem GNOME_KEYRING_PID=2176 PRINTER=lp PWD=/home/npm LANG=en_US.UTF-8 GTK_IM_MODULE=gtk-im-context-simple RNINIT=/home/npm/.rninit KDE_MULTIHEAD=false TAPE=/dev/nst0 MACHTYPE=x86_64 GDM_LANG=en_US.UTF-8 KDE_SESSION_VERSION=4 OSTYPE=linux XMODIFIERS=@im=none MYSQL_HOME=/usr/share/mysql COLORTERM=roxterm DISPLAY=:0.0 IMSETTINGS_MODULE=none SSH_AUTH_SOCK=/tmp/ssh-vBZjhX2183/agent.2183 GS_LIB= USER=npm KDE_IS_PRELINKED=1 HOSTTYPE=x86_64-linux XAUTHORITY=/var/run/gdm/auth-for-npm-qTgxo8/database LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36: XDG_SESSION_COOKIE=3867acbc354d35c597622e144aed843c-1275440722.847363-1772480229 GROUP=npm QT_PLUGIN_PATH=/home/npm/.kde/lib64/kde4/plugins/:/usr/lib64/kde4/plugins/ KDE_SESSION_UID=571 DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-sEufiDlQCh,guid=a05fd1892145b3d0afd0b5a94c05ae53 HOME=/home/npm DISABLE_IMSETTINGS=1 JRE_HOME=/usr/java/default/jre DRY_RUN=1 G_BROKEN_FILENAMES=1 MAIL=/var/spool/mail/npm GTK_RC_FILES=/etc/gtk/gtkrc:/home/npm/.gtkrc::/home/npm/.kde/share/config/gtkrc QTINC=/usr/lib64/qt-3.3/include XDG_MENU_PREFIX=kde4- ROLLER=/usr/java/apache-roller-3.1 PAGER=/usr/bin/less SHELL=/bin/tcsh QTDIR=/usr/lib64/qt-3.3 LOGNAME=npm LESSOPEN=|/usr/bin/lesspipe.sh %s HOSTNAME=gnulem CVSROOT=:pserver:niels@localhost:/usr/local/CVS GDMSESSION=kde SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/2373,unix/unix:/tmp/.ICE-unix/2373 LESS=-M -X -g -i CATALINA_HOME=/usr/share/tomcat6 XCURSOR_THEME=default _=/usr/libexec/kde4/start_kdeinit_wrapper WINDOWID=35682030 GDM_KEYBOARD_LAYOUT=us KDE_FULL_SESSION=true XDG_DATA_DIRS=/usr/share/kde-settings/kde-profile/default/share:/usr/local/share:/usr/share REMOTEHOST= PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/local/lib64/pkgconfig:/usr/share/pkgconfig DESKTOP_SESSION=kde JAVA_HOME=/usr/java/default PATH=.:/home/npm/bin:/usr/java/default/bin:/usr/share/tomcat6/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/games KMIX_PULSEAUDIO_DISABLE=1 GPG_AGENT_INFO=/tmp/gpg-hLf09I/S.gpg-agent:2287:1 SSH_AGENT_PID=2240 QT_IM_MODULE=xim ROXTERM_ID=0x104e0e0 USERNAME=npm TCLLIBPATH=/usr/local/snack2.2.10 WINTERP_UNIX_SOCKET_FILEPATH=/home/npm/.sockets/win-serv.skt WINTERP_INET_HOSTADDR=localhost WINTERP_INET_PORTNUM=23751 EDITOR=/usr/bin/gnuclient VISUAL=/usr/bin/gnuclient FCEDIT=/usr/bin/gnuclient NFED=/usr/bin/gnuclient TEXEDIT=/usr/bin/gnuclient +%d %s MM_CHARSET=iso-8859-1
Just remembered to mention.... a probable major environmental difference between your laptop and the two desktops where I can consistentently reproduce this problem: I'm not running pulseaudio therefore environment variable KMIX_PULSEAUDIO_DISABLE is set, via /etc/profile.d/kmix_pulseaudio_disable.csh ## Disable kmix/pulseaudio integration by default, see also ## https://bugzilla.redhat.com/563741 if ( ! $?KMIX_PULSEAUDIO_DISABLE ) setenv KMIX_PULSEAUDIO_DISABLE 1
FYI, this error doesn't happen on a system setup just like the one exhibiting the problem. The difference? The system with the crashing is a quad-core running "ondemand" 800mhz-3.4ghz, and the system that doesn't crash is a dual-core running "ondemand" 1000mhz-2.8Ghz.... Doesn't crash: processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 67 model name : Dual-Core AMD Opteron(tm) Processor 1220 stepping : 3 cpu MHz : 1000.000 cache size : 1024 KB siblings : 2 Crashes: processor : 0 vendor_id : AuthenticAMD cpu family : 16 model : 4 model name : AMD Phenom(tm) II X4 965 Processor stepping : 2 cpu MHz : 800.000 cache size : 512 KB siblings : 4
Actually, after running for 6 hours on the dual-core machine, continuously playing midi files from the "megatrade-midi" collection of 500+ midi files, it eventually hung with the following output: kmid(2546)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(2546)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(2546)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(2546)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! kmid(2546)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic" kmid(2546)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/home/npm/.local/share/mime/magic" *** glibc detected *** kmid: malloc(): smallbin double linked list corrupted: 0x0000000001d16fb0 *** It ended up playing through the following list of files before hanging on the file "Cryotic.mid": 420.mid 420plg150an.mid A BedTime Story.mid Absolute Zero.mid Abyss.mid A Changing World.mid Acid Move.mid After the Love has Gone.mid Agains All Odds.mid Alcoholm.mid Alf.mid Alilmyxg.mid All the E in the World.mid Always.mid Ambient.mid A New Age.mid A New Day.mid Ankarian Tales.mid Annie Logik.mid Another.mid Aor.mid April.mid A Ritual Life.mid Around The World - 7Up Mix.mid Around The World - Quioxte Remix.mid As Far As You Can See.mid Aspirin.mid Avalon.mid Babahard Song.mid Basket.mid Becomes.mid Be Far Of From Me.mid Bellisima.mid Be Static.mid Beyond My Control.mid Beyond The Skies.mid Beyond The Void.mid Bhangra.mid Birdland.mid Bitter Sweet Symphony.mid Blackbird.mid BladeRunner Love Theme.mid Blurred Images.mid Body Sexperience.mid Boney M 1997 Remix.mid Born Digital.mid Brain Infection.mid Breathe - Drum'n'Bass.mid Breathe.mid Breathin Harder.mid Bridge.mid Broken Minds.mid Brothers.mid Bumping.mid Butt Blower.mid CafeJungl.mid Called Electric Spirit.mid Calmness Night.mid Calypso Mix - Part 2.mid Can You Move in Fre-Quen-Cy.mid CE One.mid CE Two.mid Cexst.mid Chaotic Destiny.mid Chick le Freak.mid Children 808 Mix.mid Children.mid Chillie Weather.mid Classic.mid Climax.mid Close Your Eyes.mid Clubches.mid Club Nation.mid Cognito.mid Corridors.mid Cosmoman.mid Crash Boom Bang.mid Crazy.mid Creepy Things.mid Cryogenic Emotions.mid Cryotic.mid It is possible you may see this bug less frequently the fewer cores you have running. It's looking more and more like a threading issue and non-threadsafe access to memory, which is consistent with the messages of "double linked list corrupted" "double free or corruption (fasttop)" "malloc(): memory corruption (fast)" and "smallbin double linked list corrupted" Therefore, if you have at least a dual core machine, consider attempting to let it play the entire directory (you don't have to listen, alot of it is crap :-). If it can actually get through the entire directory of 500+ files with a multicore machine, then i guess I've got the wrong hypothesis....
More crashes including one with a useful-looking stack-dump at the end: megatrade-midi> kmid [cC-zZ]*.mid kdeinit4: preparing to launch /usr/lib64/libkdeinit4_klauncher.so Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) kdeinit4: preparing to launch /usr/lib64/libkdeinit4_kded4.so kdeinit4: preparing to launch /usr/lib64/libkdeinit4_kbuildsycoca4.so kbuildsycoca4 running... kbuildsycoca4(3586) KBuildSycoca::checkTimestamps: checking file timestamps kbuildsycoca4(3586) KBuildSycoca::checkTimestamps: timestamps check ok kbuildsycoca4(3586) kdemain: Emitting notifyDatabaseChanged () kdeinit4: preparing to launch /usr/lib64/libkdeinit4_kconf_update.so Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) kmid(3577)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(3577)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(3577)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(3577)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! [... lots of KDE spew deleted ...] kbuildsycoca4(3906) KMimeAssociations::parseAddedAssociations: "/home/npm/.local/share/applications/mimeapps.list" specifies unknown service "totem.desktop" in "Added Associations" kbuildsycoca4(3906) KBuildSycoca::save: Saving kbuildsycoca4(3906) kdemain: Emitting notifyDatabaseChanged ("services", "apps") *** glibc detected *** kmid: corrupted double-linked list: 0x0000000001a44760 *** ^C coggie-20-.../Music/megatrade-midi> kmid [Ll-Zz]*.mid kmid(16044)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(16044)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(16044)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(16044)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! *** glibc detected *** kmid: double free or corruption (fasttop): 0x00000000020f8590 *** ======= Backtrace: ========= /lib64/libc.so.6[0x3ac0874ac6] /lib64/libc.so.6[0x3ac0879f05] /lib64/libc.so.6(realloc+0xe7)[0x3ac087a267] /lib64/libasound.so.2[0x3ad069f4cc] /lib64/libasound.so.2(snd_seq_event_output_direct+0x6e)[0x3ad069f59e] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick21SequencerOutputThread13sendSongEventEPNS_14SequencerEventE+0x40)[0x7fe0062372c0] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick21SequencerOutputThread3runEv+0x193)[0x7fe0062370e3] /usr/lib64/libQtCore.so.4[0x3ac8c709a5] /lib64/libpthread.so.0[0x3ac1406a3a] /lib64/libc.so.6(clone+0x6d)[0x3ac08de77d] ======= Memory map: ======== 00400000-00447000 r-xp 00000000 fd:00 6192661 /usr/bin/kmid 00646000-00682000 rw-p 00046000 fd:00 6192661 /usr/bin/kmid 01c34000-04968000 rw-p 00000000 00:00 0 [heap] 3ac0400000-3ac041e000 r-xp 00000000 fd:00 8970287 /lib64/ld-2.11.2.so 3ac061d000-3ac061e000 r--p 0001d000 fd:00 8970287 /lib64/ld-2.11.2.so 3ac061e000-3ac061f000 rw-p 0001e000 fd:00 8970287 /lib64/ld-2.11.2.so 3ac061f000-3ac0620000 rw-p 00000000 00:00 0 3ac0800000-3ac0970000 r-xp 00000000 fd:00 8970294 /lib64/libc-2.11.2.so 3ac0970000-3ac0b6f000 ---p 00170000 fd:00 8970294 /lib64/libc-2.11.2.so 3ac0b6f000-3ac0b73000 r--p 0016f000 fd:00 8970294 /lib64/libc-2.11.2.so 3ac0b73000-3ac0b74000 rw-p 00173000 fd:00 8970294 /lib64/libc-2.11.2.so 3ac0b74000-3ac0b79000 rw-p 00000000 00:00 0 3ac0c00000-3ac0c83000 r-xp 00000000 fd:00 8970303 /lib64/libm-2.11.2.so 3ac0c83000-3ac0e82000 ---p 00083000 fd:00 8970303 /lib64/libm-2.11.2.so 3ac0e82000-3ac0e83000 r--p 00082000 fd:00 8970303 /lib64/libm-2.11.2.so 3ac0e83000-3ac0e84000 rw-p 00083000 fd:00 8970303 /lib64/libm-2.11.2.so 3ac1000000-3ac1002000 r-xp 00000000 fd:00 8970457 /lib64/libdl-2.11.2.so 3ac1002000-3ac1202000 ---p 00002000 fd:00 8970457 /lib64/libdl-2.11.2.so 3ac1202000-3ac1203000 r--p 00002000 fd:00 8970457 /lib64/libdl-2.11.2.so 3ac1203000-3ac1204000 rw-p 00003000 fd:00 8970457 /lib64/libdl-2.11.2.so 3ac1400000-3ac1417000 r-xp 00000000 fd:00 8970455 /lib64/libpthread-2.11.2.so 3ac1417000-3ac1616000 ---p 00017000 fd:00 8970455 /lib64/libpthread-2.11.2.so 3ac1616000-3ac1617000 r--p 00016000 fd:00 8970455 /lib64/libpthread-2.11.2.so 3ac1617000-3ac1618000 rw-p 00017000 fd:00 8970455 /lib64/libpthread-2.11.2.so 3ac1618000-3ac161c000 rw-p 00000000 00:00 0 3ac1800000-3ac1815000 r-xp 00000000 fd:00 8970358 /lib64/libz.so.1.2.3 3ac1815000-3ac1a14000 ---p 00015000 fd:00 8970358 /lib64/libz.so.1.2.3 3ac1a14000-3ac1a15000 rw-p 00014000 fd:00 8970358 /lib64/libz.so.1.2.3 3ac1c00000-3ac1c07000 r-xp 00000000 fd:00 8970543 /lib64/librt-2.11.2.so 3ac1c07000-3ac1e06000 ---p 00007000 fd:00 8970543 /lib64/librt-2.11.2.so 3ac1e06000-3ac1e07000 r--p 00006000 fd:00 8970543 /lib64/librt-2.11.2.so 3ac1e07000-3ac1e08000 rw-p 00007000 fd:00 8970543 /lib64/librt-2.11.2.so 3ac2000000-3ac20e4000 r-xp 00000000 fd:00 8970723 /lib64/libglib-2.0.so.0.2200.5 3ac20e4000-3ac22e4000 ---p 000e4000 fd:00 8970723 /lib64/libglib-2.0.so.0.2200.5 3ac22e4000-3ac22e5000 rw-p 000e4000 fd:00 8970723 /lib64/libglib-2.0.so.0.2200.5 3ac22e5000-3ac22e6000 rw-p 00000000 00:00 0 3ac2400000-3ac241b000 r-xp 00000000 fd:00 7586050 /usr/lib64/libxcb.so.1.1.0 3ac241b000-3ac261a000 ---p 0001b000 fd:00 7586050 /usr/lib64/libxcb.so.1.1.0 3ac261a000-3ac261b000 rw-p 0001a000 fd:00 7586050 /usr/lib64/libxcb.so.1.1.0 3ac2800000-3ac2802000 r-xp 00000000 fd:00 6191218 /usr/lib64/libXau.so.6.0.0 3ac2802000-3ac2a02000 ---p 00002000 fd:00 6191218 /usr/lib64/libXau.so.6.0.0 3ac2a02000-3ac2a03000 rw-p 00002000 fd:00 6191218 /usr/lib64/libXau.so.6.0.0 3ac2c00000-3ac2d39000 r-xp 00000000 fd:00 7586051 /usr/lib64/libX11.so.6.3.0 3ac2d39000-3ac2f39000 ---p 00139000 fd:00 7586051 /usr/lib64/libX11.so.6.3.0 3ac2f39000-3ac2f3f000 rw-p 00139000 fd:00 7586051 /usr/lib64/libX11.so.6.3.0 3ac3000000-3ac3016000 r-xp 00000000 fd:00 8970433 /lib64/libgcc_s-4.4.3-20100127.so.1 3ac3016000-3ac3215000 ---p 00016000 fd:00 8970433 /lib64/libgcc_s-4.4.3-20100127.so.1 3ac3215000-3ac3216000 rw-p 00015000 fd:00 8970433 /lib64/libgcc_s-4.4.3-20100127.so.1 3ac3400000-3ac3411000 r-xp 00000000 fd:00 7586052 /usr/lib64/libXext.so.6.4.0 3ac3411000-3ac3611000 ---p 00011000 fd:00 7586052 /usr/lib64/libXext.so.6.4.0 3ac3611000-3ac3612000 rw-p 00011000 fd:00 7586052 /usr/lib64/libXext.so.6.4.0 3ac3800000-3ac3843000 r-xp 00000000 fd:00 8970725 /lib64/libgobject-2.0.so.0.2200.5 3ac3843000-3ac3a43000 ---p 00043000 fd:00 8970725 /lib64/libgobject-2.0.so.0.2200.5 3ac3a43000-3ac3a45000 rw-p 00043000 fd:00 8970725 /lib64/libgobject-2.0.so.0.2200.5 3ac3c00000-3ac3c97000 r-xp 00000000 fd:00 7586036 /usr/lib64/libfreetype.so.6.3.22 3ac3c97000-3ac3e96000 ---p 00097000 fd:00 7586036 /usr/lib64/libfreetype.so.6.3.22 3ac3e96000-3ac3e9c000 rw-p 00096000 fd:00 7586036 /usr/lib64/libfreetype.so.6.3.22 3ac4000000-3ac4026000 r-xp 00000000 fd:00 8970363 /lib64/libexpat.so.1.5.2 3ac4026000-3ac4225000 ---p 00026000 fd:00 8970363 /lib64/libexpat.so.1.5.2 3ac4225000-3ac4228000 rw-p 00025000 fd:00 8970363 /lib64/libexpat.so.1.5.2 3ac4400000-3ac44e4000 r-xp 00000000 fd:00 7586044 /usr/lib64/libstdc++.so.6.0.13 3ac44e4000-3ac46e4000 ---p 000e4000 fd:00 7586044 /usr/lib64/libstdc++.so.6.0.13 3ac46e4000-3ac46eb000 r--p 000e4000 fd:00 7586044 /usr/lib64/libstdc++.so.6.0.13 3ac46eb000-3ac46ed000 rw-p 000eb000 fd:00 7586044 /usr/lib64/libstdc++.so.6.0.13 3ac46ed000-3ac4702000 rw-p 00000000 00:00 0 3ac4800000-3ac4834000 r-xp 00000000 fd:00 7586041 /usr/lib64/libfontconfig.so.1.4.4KCrash: Application 'kmid' crashing... sock_file=/home/npm/.kde/socket-coggie/kdeinit4_localhost_10 kdeinit4: preparing to launch /usr/libexec/kde4/drkonqi Suspended (signal)
Can you please try running: valgrind kmid [cC-zZ]*.mid ? That would give us more information about what is going wrong.
FYI, the latest update doesn't seem to be crashing anymore on the quad-core. kmid2-libs-2.3.0-2.fc12.x86_64 kmid2-2.3.0-2.fc12.x86_64 kmid2-debuginfo-2.3.0-2.fc12.x86_64 drumstick-debuginfo-0.3.1-2.fc12.x86_64 drumstick-examples-0.3.1-2.fc12.x86_64 drumstick-0.3.1-2.fc12.x86_64
Maybe this is actually the same bug as bug 240394?
(The only difference between kmid2-2.3.0-1.fc12 and kmid2-2.3.0-2.fc12 is Pedro's fix for bug 240394.)
I don't have access to a quad core, but my laptop has an Intel Core2Duo (dual core) and I couldn't reproduce the crash. Anyway, it looks like a race condition or some other threading related problem like the bug 240394. It even may be the same bug, indeed. By the way, none of the traces in this report has been useful to find the root cause of the problem, so I just was trying to find a way to reproduce it. Anyway2, if you both agree that the problem has gone after applying the patch in SVN revision 1134129, I will close this report and publish a release 2.3.1 as soon as possible.
Created attachment 47682 [details] New crash information added by DrKonqi Testing for the crashes seen previously, with updated kmid2-libs-2.3.0-2.fc12.x86_64, kmid2-2.3.0-2.fc12.x86_64 ... it is crashing much less frequently. However, I got it to crash on loading (from the megatrade-midi collection) "kmid *.mid" and listening/next-tracking all the way to "Cryotic.mid" at which point it crashed. Since I've seen crashes before on "Cryotic.mid", it's possible the same bug still exists, or it's possible that something about that file causes corruption. Will continue testintg new version.
here's output associated w/ above crash: gnulem-128-.../Music/megatrade-midi> kmid *.mid kmid(26511)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(26511)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(26511)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(26511)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! *** glibc detected *** kmid: double free or corruption (fasttop): 0x000000000235c560 *** ======= Backtrace: ========= /lib64/libc.so.6[0x38e7e74ac6] /lib64/libc.so.6[0x38e7e7a070] /lib64/libc.so.6(realloc+0xe7)[0x38e7e7a267] /lib64/libasound.so.2[0x38f6e9f4cc] /lib64/libasound.so.2(snd_seq_event_output_direct+0x6e)[0x38f6e9f59e] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick21SequencerOutputThread13sendSongEventEPNS_14SequencerEventE+0x40)[0x7fdec19402c0] /usr/lib64/libdrumstick-alsa.so.0(_ZN9drumstick21SequencerOutputThread3runEv+0x193)[0x7fdec19400e3] /usr/lib64/libQtCore.so.4[0x38f02709a5] /lib64/libpthread.so.0[0x38e8a06a3a] /lib64/libc.so.6(clone+0x6d)[0x38e7ede77d] ======= Memory map: ======== 00400000-00447000 r-xp 00000000 fd:00 1022 /usr/bin/kmid 00646000-00649000 rw-p 00046000 fd:00 1022 /usr/bin/kmid 008c2000-03eaa000 rw-p 00000000 00:00 0 [heap] 38e7a00000-38e7a1e000 r-xp 00000000 fd:00 3342 /lib64/ld-2.11.2.so 38e7c1d000-38e7c1e000 r--p 0001d000 fd:00 3342 /lib64/ld-2.11.2.so 38e7c1e000-38e7c1f000 rw-p 0001e000 fd:00 3342 /lib64/ld-2.11.2.so 38e7c1f000-38e7c20000 rw-p 00000000 00:00 0 38e7e00000-38e7f70000 r-xp 00000000 fd:00 15185 /lib64/libc-2.11.2.so 38e7f70000-38e816f000 ---p 00170000 fd:00 15185 /lib64/libc-2.11.2.so 38e816f000-38e8173000 r--p 0016f000 fd:00 15185 /lib64/libc-2.11.2.so 38e8173000-38e8174000 rw-p 00173000 fd:00 15185 /lib64/libc-2.11.2.so 38e8174000-38e8179000 rw-p 00000000 00:00 0 38e8200000-38e8283000 r-xp 00000000 fd:00 15641 /lib64/libm-2.11.2.so 38e8283000-38e8482000 ---p 00083000 fd:00 15641 /lib64/libm-2.11.2.so 38e8482000-38e8483000 r--p 00082000 fd:00 15641 /lib64/libm-2.11.2.so 38e8483000-38e8484000 rw-p 00083000 fd:00 15641 /lib64/libm-2.11.2.so 38e8600000-38e8602000 r-xp 00000000 fd:00 23289 /lib64/libdl-2.11.2.so 38e8602000-38e8802000 ---p 00002000 fd:00 23289 /lib64/libdl-2.11.2.so 38e8802000-38e8803000 r--p 00002000 fd:00 23289 /lib64/libdl-2.11.2.so 38e8803000-38e8804000 rw-p 00003000 fd:00 23289 /lib64/libdl-2.11.2.so 38e8a00000-38e8a17000 r-xp 00000000 fd:00 15533 /lib64/libpthread-2.11.2.so 38e8a17000-38e8c16000 ---p 00017000 fd:00 15533 /lib64/libpthread-2.11.2.so 38e8c16000-38e8c17000 r--p 00016000 fd:00 15533 /lib64/libpthread-2.11.2.so 38e8c17000-38e8c18000 rw-p 00017000 fd:00 15533 /lib64/libpthread-2.11.2.so 38e8c18000-38e8c1c000 rw-p 00000000 00:00 0 38e8e00000-38e8e15000 r-xp 00000000 fd:00 15772 /lib64/libz.so.1.2.3 38e8e15000-38e9014000 ---p 00015000 fd:00 15772 /lib64/libz.so.1.2.3 38e9014000-38e9015000 rw-p 00014000 fd:00 15772 /lib64/libz.so.1.2.3 38e9200000-38e9207000 r-xp 00000000 fd:00 31669 /lib64/librt-2.11.2.so 38e9207000-38e9406000 ---p 00007000 fd:00 31669 /lib64/librt-2.11.2.so 38e9406000-38e9407000 r--p 00006000 fd:00 31669 /lib64/librt-2.11.2.so 38e9407000-38e9408000 rw-p 00007000 fd:00 31669 /lib64/librt-2.11.2.so 38e9600000-38e96e4000 r-xp 00000000 fd:00 48919 /lib64/libglib-2.0.so.0.2200.5 38e96e4000-38e98e4000 ---p 000e4000 fd:00 48919 /lib64/libglib-2.0.so.0.2200.5 38e98e4000-38e98e5000 rw-p 000e4000 fd:00 48919 /lib64/libglib-2.0.so.0.2200.5 38e98e5000-38e98e6000 rw-p 00000000 00:00 0 38e9a00000-38e9a02000 r-xp 00000000 fd:00 23283 /usr/lib64/libXau.so.6.0.0 38e9a02000-38e9c02000 ---p 00002000 fd:00 23283 /usr/lib64/libXau.so.6.0.0 38e9c02000-38e9c03000 rw-p 00002000 fd:00 23283 /usr/lib64/libXau.so.6.0.0 38e9e00000-38e9e1b000 r-xp 00000000 fd:00 23288 /usr/lib64/libxcb.so.1.1.0 38e9e1b000-38ea01a000 ---p 0001b000 fd:00 23288 /usr/lib64/libxcb.so.1.1.0 38ea01a000-38ea01b000 rw-p 0001a000 fd:00 23288 /usr/lib64/libxcb.so.1.1.0 38ea200000-38ea339000 r-xp 00000000 fd:00 23298 /usr/lib64/libX11.so.6.3.0 38ea339000-38ea539000 ---p 00139000 fd:00 23298 /usr/lib64/libX11.so.6.3.0 38ea539000-38ea53f000 rw-p 00139000 fd:00 23298 /usr/lib64/libX11.so.6.3.0 38ea600000-38ea643000 r-xp 00000000 fd:00 48922 /lib64/libgobject-2.0.so.0.2200.5 38ea643000-38ea843000 ---p 00043000 fd:00 48922 /lib64/libgobject-2.0.so.0.2200.5 38ea843000-38ea845000 rw-p 00043000 fd:00 48922 /lib64/libgobject-2.0.so.0.2200.5 38eaa00000-38eaa11000 r-xp 00000000 fd:00 23304 /usr/lib64/libXext.so.6.4.0 38eaa11000-38eac11000 ---p 00011000 fd:00 23304 /usr/lib64/libXext.so.6.4.0 38eac11000-38eac12000 rw-p 00011000 fd:00 23304 /usr/lib64/libXext.so.6.4.0 38eae00000-38eae16000 r-xp 00000000 fd:00 20945 /lib64/libgcc_s-4.4.3-20100127.so.1 38eae16000-38eb015000 ---p 00016000 fd:00 20945 /lib64/libgcc_s-4.4.3-20100127.so.1 38eb015000-38eb016000 rw-p 00015000 fd:00 20945 /lib64/libgcc_s-4.4.3-20100127.so.1 38eb200000-38eb297000 r-xp 00000000 fd:00 16067 /usr/lib64/libfreetype.so.6.3.22 38eb297000-38eb496000 ---p 00097000 fd:00 16067 /usr/lib64/libfreetype.so.6.3.22 38eb496000-38eb49c000 rw-p 00096000 fd:00 16067 /usr/lib64/libfreetype.so.6.3.22 38eb600000-38eb626000 r-xp 00000000 fd:00 16072 /lib64/libexpat.so.1.5.2 38eb626000-38eb825000 ---p 00026000 fd:00 16072 /lib64/libexpat.so.1.5.2 38eb825000-38eb828000 rw-p 00025000 fd:00 16072 /lib64/libexpat.so.1.5.2KCrash: Application 'kmid' crashing... sock_file=/home/npm/.kde/socket-gnulem/kdeinit4__0 Suspended (signal)
Trying to skip past the "C*.mid" files incase there was a problem w/ the data in one of them... I tested again starting with D*.mid and was able to crash it again just by doing "next" multiple times (never made it out of the "D*.mid" before it crashed). This is on the quad-core. Testing next on dual-core to see if problem happens less frequently or not at all.... gnulem-134-.../Music/megatrade-midi> kmid [Dd-Zz]*.mid kmid(27543)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(27543)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(27543)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(27543)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! KCrash: Application 'kmid' crashing... Alarm clock
Unfortunately, the updated kmid is still hanging on the dual-core as well starting with "D*.mid" I did "next" until it hit "Don't give up.mid" and then it hung: coggie-62-.../Music/megatrade-midi> kmid [Dd-Zz]*.mid kmid(24334)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(24334)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(24334)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(24334)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! *** glibc detected *** kmid: corrupted double-linked list: 0x0000000002562c90 *** JackActivationCount::Signal value = 0 ref = 3 A separate issue, but indicative of a race condition... the first time I ran this new update of kmid on the dual core it quit, complaining that it couldn't initialize KMid/backend: coggie-55-.../Music/megatrade-midi> kmid [Dd-Zz]*.mid kmid(24309)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(24309)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(24309)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(24309)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! kmid(24309)/kdecore (trader) KServiceTypeTrader::defaultOffers: KServiceTypeTrader: serviceType "KMid/backend" not found kmid(24309)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig:
Created attachment 47683 [details] New crash information added by DrKonqi Crash on dual core. Didn't touch anything (no "next" clickls), just let it start playing, and it crashed. This new version seems to be crashing on the dual-core MORE OFTEN than the previous, which was able to play MIDI files for many hours, not just ten minutes.... coggie-64-.../Music/megatrade-midi> kmid [Ee-Zz]*.mid kmid(24494)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(24494)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(24494)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(24494)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! KCrash: Application 'kmid' crashing... sock_file=/home/npm/.kde/socket-coggie/kdeinit4__0
Can you please try it with Valgrind and see if we get an interesting log that way? I think you're the only one here who can reproduce this bug.
The Valgrind tool that detects threading problems is called 'helgrind'. It reports many false positives and the reports are very hard to interpret. Anyway, the command is: $ valgrind --tool=helgrind kmid *.mid A GDB stack trace of a crash could be useful, if all the debugging symbols are installed for all the involved components. But the standard output messages, like those "Attempt to use QAction..." are absolutely meaningless. More noise, that means absolutely nothing at all: 38ea643000-38ea843000 ---p 00043000 fd:00 48922 /lib64/libgobject-2.0.so.0.2200.5
Pedro, will try yours next.... Kevin, your wish, is my command-line: it played for a while then froze, output this, and continued: coggie-66-.../Music/megatrade-midi> valgrind kmid [Ee-Zz]*.mid ==24566== Memcheck, a memory error detector ==24566== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==24566== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==24566== Command: kmid Easy\ Goin.mid Easy.mid Eat\ This\ Too.mid Eat\ Us\ Three.mid Edge\ Of\ Darkness.mid Elfin\ Wood.mid Emotion.mid Encore\ Une\ Fois.mid End\ Of\ Winter.mid Epic.mid Experimental.mid Exstasia.mid Extreme.mid ==24566== kmid(24566)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(24566)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(24566)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(24566)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! ==24566== Syscall param write(buf) points to uninitialised byte(s) ==24566== at 0x3AC140E0BD: ??? (syscall-template.S:82) ==24566== by 0x3AC7808F2E: _IceTransSocketWrite (Xtranssock.c:2163) ==24566== by 0x3AC780D737: _IceWrite (misc.c:352) ==24566== by 0x3AC780D823: IceFlush (misc.c:80) ==24566== by 0x3AC9811BFC: sm_setProperty(char const*, char const*, int, SmPropValue*) (qapplication_x11.cpp:5483) ==24566== by 0x3AC98156DF: sm_setProperty(QString const&, QString const&) (qapplication_x11.cpp:5498) ==24566== by 0x3AC982612D: sm_performSaveYourself(QSessionManagerPrivate*) (qapplication_x11.cpp:5562) ==24566== by 0x3AC9826E28: sm_saveYourselfCallback(_SmcConn*, void*, int, int, int, int) (qapplication_x11.cpp:5541) ==24566== by 0x3AC7C0623B: _SmcProcessMessage (sm_process.c:252) ==24566== by 0x3AC7812183: IceProcessMessages (process.c:343) ==24566== by 0x3AC981206E: QSmSocketReceiver::qt_metacall(QMetaObject::Call, int, void**) (qapplication_x11.moc:71) ==24566== by 0x3AC8D6A2AE: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3293) ==24566== Address 0xb99867c is 12 bytes inside a block of size 1,024 alloc'd ==24566== at 0x4A04481: calloc (vg_replace_malloc.c:418) ==24566== by 0x3AC7805CD8: IceOpenConnection (connect.c:210) ==24566== by 0x3AC7C0270A: SmcOpenConnection (sm_client.c:135) ==24566== by 0x3AC98188E7: QSessionManager::QSessionManager(QApplication*, QString&, QString&) (qapplication_x11.cpp:5723) ==24566== by 0x3AC97B58FB: QApplicationPrivate::initialize() (qapplication.cpp:909) ==24566== by 0x3AC97B5A1A: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:772) ==24566== by 0x3AC97B6107: QApplication::QApplication(int&, char**, bool, int) (qapplication.cpp:727) ==24566== by 0x3AD3808C26: KApplication::KApplication(bool) (kapplication.cpp:337) ==24566== by 0x42FD74: main (main.cpp:45) ==24566== JackActivationCount::Signal value = 0 ref = 3 JackActivationCount::Signal value = 0 ref = 3 JackActivationCount::Signal value = 0 ref = 3
it also output the following on termination: ==24566== ==24566== HEAP SUMMARY: ==24566== in use at exit: 27,367,641 bytes in 188,158 blocks ==24566== total heap usage: 12,833,958 allocs, 12,645,800 frees, 3,308,661,633 bytes allocated ==24566== ==24566== LEAK SUMMARY: ==24566== definitely lost: 6,648 bytes in 17 blocks ==24566== indirectly lost: 27,744 bytes in 864 blocks ==24566== possibly lost: 24,241,543 bytes in 171,257 blocks ==24566== still reachable: 3,091,706 bytes in 16,020 blocks ==24566== suppressed: 0 bytes in 0 blocks ==24566== Rerun with --leak-check=full to see details of leaked memory ==24566== ==24566== For counts of detected and suppressed errors, rerun with: -v ==24566== Use --track-origins=yes to see where uninitialised values come from ==24566== ERROR SUMMARY: 5 errors from 1 contexts (suppressed: 272 from 16)
on the dual core: coggie-75-.../Music/megatrade-midi> valgrind --tool=helgrind kmid [Ff-Zz]*.mid ==24776== Helgrind, a thread error detector ==24776== Copyright (C) 2007-2009, and GNU GPL'd, by OpenWorks LLP et al. ==24776== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==24776== Command: kmid Fanfare\ 98.mid Fantasy.mid Far\ Worlds.mid Feel\ The\ Energy.mid Fields\ of\ Gold.mid Final\ Countdown.mid First\ Contact.mid First\ Dream.mid Flares.mid Float1.mid Floating\ Dreams.mid Floating.mid Floating\ Point.mid Fool's\ Gold.mid Forever.mid Forgotten\ Memories.mid Forgotten\ Times.mid Fragile.mid Free.mid Frozen.mid Full\ Memory.mid Funkin\ 4\ Ya.mid Fussion.mid ==24776== ==24776== Thread #1 is the program's root thread ==24776== ==24776== Thread #1: lock order "0x4ECE870 before 0x4F4B900" violated ==24776== at 0x4A08496: QMutex::lock() (hg_intercepts.c:1987) ==24776== by 0x3AC8D5A111: QCoreApplication::libraryPaths() (qmutex.h:120) ==24776== by 0x3AC8D3FA0E: QFactoryLoader::update() (qfactoryloader.cpp:109) ==24776== by 0x3AC8D42673: QFactoryLoader::QFactoryLoader(char const*, QString const&, Qt::CaseSensitivity) (qfactoryloader.cpp:99) ==24776== by 0x3AC9810639: qt_guiPlatformPlugin() (qguiplatformplugin.cpp:101) ==24776== by 0x3AC981AE87: QApplicationPrivate::x11_apply_settings() (qapplication_x11.cpp:928) ==24776== by 0x3AC981D65D: qt_set_x11_resources(char const*, char const*, char const*, char const*) (qapplication_x11.cpp:1103) ==24776== by 0x3AC982450D: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2313) ==24776== by 0x3AC97B5A12: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:771) ==24776== by 0x3AC97B6107: QApplication::QApplication(int&, char**, bool, int) (qapplication.cpp:727) ==24776== by 0x3AD3808C26: KApplication::KApplication(bool) (kapplication.cpp:337) ==24776== by 0x42FD74: main (main.cpp:45) ==24776== Required order was established by acquisition of lock at 0x4ECE870 ==24776== at 0x4A08496: QMutex::lock() (hg_intercepts.c:1987) ==24776== by 0x3AC8D5A782: QCoreApplication::addLibraryPath(QString const&) (qmutex.h:120) ==24776== by 0x3AC9819787: QApplicationPrivate::x11_apply_settings() (qapplication_x11.cpp:921) ==24776== by 0x3AC981D65D: qt_set_x11_resources(char const*, char const*, char const*, char const*) (qapplication_x11.cpp:1103) ==24776== by 0x3AC982450D: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2313) ==24776== by 0x3AC97B5A12: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:771) ==24776== by 0x3AC97B6107: QApplication::QApplication(int&, char**, bool, int) (qapplication.cpp:727) ==24776== by 0x3AD3808C26: KApplication::KApplication(bool) (kapplication.cpp:337) ==24776== by 0x42FD74: main (main.cpp:45) ==24776== followed by a later acquisition of lock at 0x4F4B900 ==24776== at 0x4A08496: QMutex::lock() (hg_intercepts.c:1987) ==24776== by 0x3AC8D424BF: QFactoryLoader::refreshAll() (qmutex.h:120) ==24776== by 0x3AC8D5A8B1: QCoreApplication::addLibraryPath(QString const&) (qcoreapplication.cpp:2327) ==24776== by 0x3AC9819787: QApplicationPrivate::x11_apply_settings() (qapplication_x11.cpp:921) ==24776== by 0x3AC981D65D: qt_set_x11_resources(char const*, char const*, char const*, char const*) (qapplication_x11.cpp:1103) ==24776== by 0x3AC982450D: qt_init(QApplicationPrivate*, int, _XDisplay*, unsigned long, unsigned long) (qapplication_x11.cpp:2313) ==24776== by 0x3AC97B5A12: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (qapplication.cpp:771) ==24776== by 0x3AC97B6107: QApplication::QApplication(int&, char**, bool, int) (qapplication.cpp:727) ==24776== by 0x3AD3808C26: KApplication::KApplication(bool) (kapplication.cpp:337) ==24776== by 0x42FD74: main (main.cpp:45) ==24776== kmid(24776)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(24776)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(24776)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(24776)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! ==24776== Thread #2 was created ==24776== at 0x3AC08DE73E: clone (clone.S:77) ==24776== by 0x3AC1406333: do_clone.clone.0 (createthread.c:75) ==24776== by 0x3AC1407001: pthread_create@@GLIBC_2.2.5 (createthread.c:249) ==24776== by 0x4A0A079: pthread_create_WRK (hg_intercepts.c:229) ==24776== by 0x4A0A11C: pthread_create@* (hg_intercepts.c:256) ==24776== by 0x3AC8C70DD8: QThread::start(QThread::Priority) (qthread_unix.cpp:542) ==24776== by 0xD85942E: drumstick::MidiClient::SequencerInputThread::start(QThread::Priority) (alsaclient.cpp:1703) ==24776== by 0xD402E67: KMid::ALSABackend::ALSABackend(QObject*, QList<QVariant> const&) (alsabackend.cpp:72) ==24776== by 0xD4044C6: QObject* KPluginFactory::createInstance<KMid::ALSABackend, QObject>(QWidget*, QObject*, QList<QVariant> const&) (kpluginfactory.h:461) ==24776== by 0x3ACB7D98AB: KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&) (kpluginfactory.cpp:191) ==24776== by 0x415DBA: KMid::BackendLoader::loadAllBackends() (kpluginfactory.h:491) ==24776== by 0x42BA41: KMid2::initialize() (kmid2.cpp:134) ==24776== ==24776== Possible data race during read of size 4 at 0xcfe0700 by thread #2 ==24776== at 0xD4086BB: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:179) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 4 by thread #1 ==24776== at 0xD40732B: KMid::ALSAMIDIObject::updateState(KMid::State) (alsamidiobject.cpp:717) ==24776== by 0xD407783: KMid::ALSAMIDIObject::play() (alsamidiobject.cpp:411) ==24776== by 0x4286E4: KMid2::play() (kmid2.cpp:539) ==24776== by 0x42B83F: KMid2::slotSourceChanged(QString const&) (kmid2.cpp:455) ==24776== by 0x42D3ED: KMid2::qt_metacall(QMetaObject::Call, int, void**) (kmid2.moc:184) ==24776== by 0x3AC8D6A2AE: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3293) ==24776== by 0x4C3E1A4: KMid::MIDIObject::currentSourceChanged(QString const&) (midiobject.moc:190) ==24776== by 0xD409B7C: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:687) ==24776== ==24776== Possible data race during read of size 4 at 0xcfdf950 by thread #2 ==24776== at 0x3AC8D6A513: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject_p.h:227) ==24776== by 0x4C3E12E: KMid::MIDIObject::timeSignatureChanged(int, int) (midiobject.moc:204) ==24776== by 0xD40892E: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:189) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Thread #4 was created ==24776== at 0x3AC08DE73E: clone (clone.S:77) ==24776== by 0x3AC1406333: do_clone.clone.0 (createthread.c:75) ==24776== by 0x3AC1407001: pthread_create@@GLIBC_2.2.5 (createthread.c:249) ==24776== by 0x4A0A079: pthread_create_WRK (hg_intercepts.c:229) ==24776== by 0x4A0A11C: pthread_create@* (hg_intercepts.c:256) ==24776== by 0x3AC8C70DD8: QThread::start(QThread::Priority) (qthread_unix.cpp:542) ==24776== by 0xD867F33: drumstick::SequencerOutputThread::start(QThread::Priority) (playthread.cpp:219) ==24776== by 0xD407776: KMid::ALSAMIDIObject::play() (alsamidiobject.cpp:410) ==24776== by 0x4286E4: KMid2::play() (kmid2.cpp:539) ==24776== by 0x42B83F: KMid2::slotSourceChanged(QString const&) (kmid2.cpp:455) ==24776== by 0x42D3ED: KMid2::qt_metacall(QMetaObject::Call, int, void**) (kmid2.moc:184) ==24776== by 0x3AC8D6A2AE: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3293) ==24776== ==24776== Possible data race during read of size 8 at 0xcfe61a0 by thread #2 ==24776== at 0x3AD069F48A: alloc_tmpbuf (seq.c:3880) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F4CF: alloc_tmpbuf (seq.c:3889) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during read of size 8 at 0xcfe61a8 by thread #2 ==24776== at 0x3AD069F499: alloc_tmpbuf (seq.c:3888) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F4DA: alloc_tmpbuf (seq.c:3892) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 8 at 0xcfe61a0 by thread #2 ==24776== at 0x3AD069F4CF: alloc_tmpbuf (seq.c:3889) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F4CF: alloc_tmpbuf (seq.c:3889) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 8 at 0xcfe61a8 by thread #2 ==24776== at 0x3AD069F4DA: alloc_tmpbuf (seq.c:3892) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F4DA: alloc_tmpbuf (seq.c:3892) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 8 at 0x102c1000 by thread #2 ==24776== at 0x3AD069F5AF: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F5AF: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 8 at 0x102c1008 by thread #2 ==24776== at 0x3AD069F5B7: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F5B7: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 8 at 0x102c1010 by thread #2 ==24776== at 0x3AD069F5C0: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F5C0: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 4 at 0x102c1018 by thread #2 ==24776== at 0x3AD069F5C9: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 4 by thread #4 ==24776== at 0x3AD069F5C9: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 1 at 0x102c1021 by thread #2 ==24776== at 0x4A08C65: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #4 ==24776== at 0x4A08D01: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 1 at 0x102c1020 by thread #2 ==24776== at 0x4A08C6F: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #4 ==24776== at 0x4A08CF7: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101f by thread #2 ==24776== at 0x4A08C7A: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #4 ==24776== at 0x4A08D17: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101e by thread #2 ==24776== at 0x4A08C85: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #4 ==24776== at 0x4A08D0C: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101d by thread #2 ==24776== at 0x4A08CC2: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #4 ==24776== at 0x4A08D01: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during read of size 8 at 0xcfe61a0 by thread #4 ==24776== at 0x3AD069F48A: alloc_tmpbuf (seq.c:3880) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F4CF: alloc_tmpbuf (seq.c:3889) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during read of size 8 at 0xcfe61a8 by thread #4 ==24776== at 0x3AD069F499: alloc_tmpbuf (seq.c:3888) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F4DA: alloc_tmpbuf (seq.c:3892) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 8 at 0xcfe61a0 by thread #4 ==24776== at 0x3AD069F4CF: alloc_tmpbuf (seq.c:3889) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F4CF: alloc_tmpbuf (seq.c:3889) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 8 at 0xcfe61a8 by thread #4 ==24776== at 0x3AD069F4DA: alloc_tmpbuf (seq.c:3892) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F4DA: alloc_tmpbuf (seq.c:3892) ==24776== by 0x3AD069F59D: snd_seq_event_output_direct (seq.c:3921) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 8 at 0x102c1000 by thread #4 ==24776== at 0x3AD069F5AF: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F5AF: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 8 at 0x102c1008 by thread #4 ==24776== at 0x3AD069F5B7: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F5B7: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 8 at 0x102c1010 by thread #4 ==24776== at 0x3AD069F5C0: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 8 by thread #2 ==24776== at 0x3AD069F5C0: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 4 at 0x102c1018 by thread #4 ==24776== at 0x3AD069F5C9: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 4 by thread #2 ==24776== at 0x3AD069F5C9: snd_seq_event_output_direct (seq.c:3923) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101c by thread #4 ==24776== at 0x4A08CF7: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #2 ==24776== at 0x4A08CC2: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101d by thread #4 ==24776== at 0x4A08D01: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #2 ==24776== at 0x4A08CC2: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101e by thread #4 ==24776== at 0x4A08D0C: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #2 ==24776== at 0x4A08C85: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 1 at 0x102c101f by thread #4 ==24776== at 0x4A08D17: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #2 ==24776== at 0x4A08C7A: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 1 at 0x102c1024 by thread #4 ==24776== at 0x4A08D52: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD8682BF: drumstick::SequencerOutputThread::sendSongEvent(drumstick::SequencerEvent*) (playthread.cpp:128) ==24776== by 0xD8680E2: drumstick::SequencerOutputThread::run() (playthread.cpp:189) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #2 ==24776== at 0x4A08C65: memcpy (hg_intercepts.c:2358) ==24776== by 0x3AD069F5E2: snd_seq_event_output_direct (string3.h:52) ==24776== by 0xD859D01: drumstick::MidiClient::outputDirect(drumstick::SequencerEvent*, bool, int) (alsaclient.cpp:998) ==24776== by 0xD408727: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:257) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== ==24776== Possible data race during write of size 1 at 0x4eb0718 by thread #2 ==24776== at 0x3AC8D574E1: QCoreApplication::postEvent(QObject*, QEvent*, int) (qcoreapplication.cpp:1163) ==24776== by 0x3AC8D67A06: queued_activate(QObject*, int, QObjectPrivate::Connection*, void**, QSemaphore*) (qobject.cpp:3173) ==24776== by 0x3AC8D6A179: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3266) ==24776== by 0x4C3E261: KMid::MIDIObject::tick(long long) (midiobject.moc:164) ==24776== by 0xD4088C6: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:183) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous read of size 1 by thread #1 ==24776== at 0x3AC8D7D55C: postEventSourcePrepare(_GSource*, int*) (qeventdispatcher_glib.cpp:260) ==24776== by 0x3AC203C449: g_main_context_prepare (gmain.c:2280) ==24776== by 0x3AC203C820: g_main_context_iterate (gmain.c:2571) ==24776== by 0x3AC203CD49: g_main_context_iteration (gmain.c:2654) ==24776== by 0x3AC8D7D062: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:412) ==24776== by 0x3AC9849A4D: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:204) ==24776== by 0x3AC8D56191: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==24776== by 0x3AC8D5645B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==24776== ==24776== Possible data race during write of size 1 at 0x4eb0718 by thread #2 ==24776== at 0x3AC8D574E1: QCoreApplication::postEvent(QObject*, QEvent*, int) (qcoreapplication.cpp:1163) ==24776== by 0x3AC8D67A06: queued_activate(QObject*, int, QObjectPrivate::Connection*, void**, QSemaphore*) (qobject.cpp:3173) ==24776== by 0x3AC8D6A179: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3266) ==24776== by 0x4C3E09C: KMid::MIDIObject::midiNoteOn(int, int, int) (midiobject.moc:218) ==24776== by 0xD408A20: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:222) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous read of size 1 by thread #1 ==24776== at 0x3AC8D7D55C: postEventSourcePrepare(_GSource*, int*) (qeventdispatcher_glib.cpp:260) ==24776== by 0x3AC203C449: g_main_context_prepare (gmain.c:2280) ==24776== by 0x3AC203C820: g_main_context_iterate (gmain.c:2571) ==24776== by 0x3AC203CD49: g_main_context_iteration (gmain.c:2654) ==24776== by 0x3AC8D7D062: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:412) ==24776== by 0x3AC9849A4D: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:204) ==24776== by 0x3AC8D56191: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==24776== by 0x3AC8D5645B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==24776== ==24776== Possible data race during read of size 1 at 0x4eb0718 by thread #1 ==24776== at 0x3AC8D7D55C: postEventSourcePrepare(_GSource*, int*) (qeventdispatcher_glib.cpp:260) ==24776== by 0x3AC203C139: g_main_context_check (gmain.c:2469) ==24776== by 0x3AC203C91C: g_main_context_iterate (gmain.c:2588) ==24776== by 0x3AC203CD49: g_main_context_iteration (gmain.c:2654) ==24776== by 0x3AC8D7D062: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:412) ==24776== by 0x3AC9849A4D: QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qguieventdispatcher_glib.cpp:204) ==24776== by 0x3AC8D56191: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==24776== by 0x3AC8D5645B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==24776== by 0x3AC8D58748: QCoreApplication::exec() (qcoreapplication.cpp:981) ==24776== by 0x42FF43: main (main.cpp:63) ==24776== This conflicts with a previous write of size 1 by thread #2 ==24776== at 0x3AC8D574E1: QCoreApplication::postEvent(QObject*, QEvent*, int) (qcoreapplication.cpp:1163) ==24776== by 0x3AC8D67A06: queued_activate(QObject*, int, QObjectPrivate::Connection*, void**, QSemaphore*) (qobject.cpp:3173) ==24776== by 0x3AC8D6A179: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3266) ==24776== by 0x4C3E09C: KMid::MIDIObject::midiNoteOn(int, int, int) (midiobject.moc:218) ==24776== by 0xD408A20: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:222) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776==
and now it's hung, and making machine very slow.... ==24776== Possible data race during write of size 4 at 0xcfe0700 by thread #1 ==24776== at 0xD40732B: KMid::ALSAMIDIObject::updateState(KMid::State) (alsamidiobject.cpp:717) ==24776== by 0xD40735F: KMid::ALSAMIDIObject::songFinished() (alsamidiobject.cpp:703) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== by 0x3AC8D7D522: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (qcoreapplication.h:220) ==24776== by 0x3AC203923D: g_main_context_dispatch (gmain.c:1960) ==24776== by 0x3AC203CC27: g_main_context_iterate (gmain.c:2591) ==24776== This conflicts with a previous read of size 4 by thread #2 ==24776== at 0xD4086BB: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:179) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during read of size 1 at 0xcfdf910 by thread #2 ==24776== at 0x3AC8D69FE3: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3221) ==24776== by 0x4C3E09C: KMid::MIDIObject::midiNoteOn(int, int, int) (midiobject.moc:218) ==24776== by 0xD408A20: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:222) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== This conflicts with a previous write of size 1 by thread #1 ==24776== at 0x3AC8D668E4: QObject::event(QEvent*) (qobject.cpp:1236) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== by 0x3AC8D7D522: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (qcoreapplication.h:220) ==24776== by 0x3AC203923D: g_main_context_dispatch (gmain.c:1960) ==24776== ==24776== Possible data race during write of size 4 at 0xcfe0700 by thread #1 ==24776== at 0xD40732B: KMid::ALSAMIDIObject::updateState(KMid::State) (alsamidiobject.cpp:717) ==24776== by 0xD40999D: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:656) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== by 0x3AC8D7D522: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (qcoreapplication.h:220) ==24776== by 0x3AC203923D: g_main_context_dispatch (gmain.c:1960) ==24776== by 0x3AC203CC27: g_main_context_iterate (gmain.c:2591) ==24776== This conflicts with a previous read of size 4 by thread #2 ==24776== at 0xD4086BB: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:179) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776== ==24776== Possible data race during read of size 8 at 0xcfe6178 by thread #1 ==24776== at 0x3AD069F64C: snd_seq_event_output_buffer (seq.c:3863) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD86477D: drumstick::MidiQueue::start() (alsaqueue.cpp:848) ==24776== by 0xD409AC6: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:85) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F688: snd_seq_event_output_buffer (seq.c:3866) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD864727: drumstick::MidiQueue::stop() (alsaqueue.cpp:860) ==24776== by 0xD86802D: drumstick::SequencerOutputThread::run() (playthread.cpp:202) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 8 at 0xd00cd20 by thread #1 ==24776== at 0x3AD069F667: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD86477D: drumstick::MidiQueue::start() (alsaqueue.cpp:848) ==24776== by 0xD409AC6: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:85) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F667: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD864727: drumstick::MidiQueue::stop() (alsaqueue.cpp:860) ==24776== by 0xD86802D: drumstick::SequencerOutputThread::run() (playthread.cpp:202) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 8 at 0xd00cd28 by thread #1 ==24776== at 0x3AD069F66E: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD86477D: drumstick::MidiQueue::start() (alsaqueue.cpp:848) ==24776== by 0xD409AC6: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:85) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F66E: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD864727: drumstick::MidiQueue::stop() (alsaqueue.cpp:860) ==24776== by 0xD86802D: drumstick::SequencerOutputThread::run() (playthread.cpp:202) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 8 at 0xd00cd30 by thread #1 ==24776== at 0x3AD069F676: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD86477D: drumstick::MidiQueue::start() (alsaqueue.cpp:848) ==24776== by 0xD409AC6: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:85) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F676: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD864727: drumstick::MidiQueue::stop() (alsaqueue.cpp:860) ==24776== by 0xD86802D: drumstick::SequencerOutputThread::run() (playthread.cpp:202) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 4 at 0xd00cd38 by thread #1 ==24776== at 0x3AD069F67D: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD86477D: drumstick::MidiQueue::start() (alsaqueue.cpp:848) ==24776== by 0xD409AC6: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:85) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== This conflicts with a previous write of size 4 by thread #4 ==24776== at 0x3AD069F67D: snd_seq_event_output_buffer (string3.h:52) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD864727: drumstick::MidiQueue::stop() (alsaqueue.cpp:860) ==24776== by 0xD86802D: drumstick::SequencerOutputThread::run() (playthread.cpp:202) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 8 at 0xcfe6178 by thread #1 ==24776== at 0x3AD069F688: snd_seq_event_output_buffer (seq.c:3866) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD86477D: drumstick::MidiQueue::start() (alsaqueue.cpp:848) ==24776== by 0xD409AC6: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:85) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== This conflicts with a previous write of size 8 by thread #4 ==24776== at 0x3AD069F688: snd_seq_event_output_buffer (seq.c:3866) ==24776== by 0x3AD069F6F8: snd_seq_event_output (seq.c:3834) ==24776== by 0x3AD06A1185: snd_seq_control_queue (seqmid.c:57) ==24776== by 0xD864727: drumstick::MidiQueue::stop() (alsaqueue.cpp:860) ==24776== by 0xD86802D: drumstick::SequencerOutputThread::run() (playthread.cpp:202) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== ==24776== Possible data race during write of size 4 at 0xcfe0700 by thread #1 ==24776== at 0xD40732B: KMid::ALSAMIDIObject::updateState(KMid::State) (alsamidiobject.cpp:717) ==24776== by 0xD409B71: KMid::ALSAMIDIObject::openFile(QString const&) (alsamidiobject.cpp:686) ==24776== by 0xD40A04F: KMid::ALSAMIDIObject::qt_metacall(QMetaObject::Call, int, void**) (alsamidiobject.moc:149) ==24776== by 0x3AC8D66920: QObject::event(QEvent*) (qobject.cpp:1248) ==24776== by 0x3AC97AA9DB: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4300) ==24776== by 0x3AC97B0AAA: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4183) ==24776== by 0x3AD3806855: KApplication::notify(QObject*, QEvent*) (kapplication.cpp:302) ==24776== by 0x3AC8D5774B: QCoreApplication::notifyInternal(QObject*, QEvent*) (qcoreapplication.cpp:704) ==24776== by 0x3AC8D58496: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (qcoreapplication.h:215) ==24776== by 0x3AC8D7D522: postEventSourceDispatch(_GSource*, int (*)(void*), void*) (qcoreapplication.h:220) ==24776== by 0x3AC203923D: g_main_context_dispatch (gmain.c:1960) ==24776== by 0x3AC203CC27: g_main_context_iterate (gmain.c:2591) ==24776== This conflicts with a previous read of size 4 by thread #2 ==24776== at 0xD4086BB: KMid::ALSAMIDIObject::handleSequencerEvent(drumstick::SequencerEvent*) (alsamidiobject.cpp:179) ==24776== by 0xD85785B: drumstick::MidiClient::doEvents() (alsaclient.cpp:648) ==24776== by 0xD859671: drumstick::MidiClient::SequencerInputThread::run() (alsaclient.cpp:1736) ==24776== by 0x3AC8C709A4: QThreadPrivate::start(void*) (qthread_unix.cpp:248) ==24776== by 0x4A0A1A5: mythread_wrapper (hg_intercepts.c:201) ==24776== by 0x3AC1406A39: start_thread (pthread_create.c:297) ==24776== by 0x3AC08DE77C: clone (clone.S:112) ==24776==
got tired of waiting and killed it: ^C==24776== Thread #1: Exiting thread still holds 2 locks ==24776== at 0x3AC8D57F62: QCoreApplication::removePostedEvents(QObject*, int) (qmutex.h:109) ==24776== by 0x3AC8D6C15C: QObject::~QObject() (qobject.cpp:979) ==24776== by 0x3AC99F4BA8: QTextFrame::~QTextFrame() (qtextobject.cpp:425) ==24776== by 0x3AC8D656FB: QObjectPrivate::deleteChildren() (qobject.cpp:1986) ==24776== by 0x3AC8D6C148: QObject::~QObject() (qobject.cpp:975) ==24776== by 0x3AC99F7B48: QTextDocument::~QTextDocument() (qtextdocument.cpp:347) ==24776== by 0x3AC8D656FB: QObjectPrivate::deleteChildren() (qobject.cpp:1986) ==24776== by 0x3AC8D6C148: QObject::~QObject() (qobject.cpp:975) ==24776== by 0x3AC99CE878: QTextControl::~QTextControl() (qtextcontrol.cpp:783) ==24776== by 0x3AC8D656FB: QObjectPrivate::deleteChildren() (qobject.cpp:1986) ==24776== by 0x3AC8D6C148: QObject::~QObject() (qobject.cpp:975) ==24776== by 0x432D47: KeyLabel::~KeyLabel() (keylabel.h:29) ==24776== ==24776== ==24776== For counts of detected and suppressed errors, rerun with: -v ==24776== Use --history-level=approx or =none to gain increased speed, at ==24776== the cost of reduced accuracy of conflicting-access information ==24776== ERROR SUMMARY: 2791 errors from 43 contexts (suppressed: 115216 from 197) Killed
In principle, a "double free or corruption" is something the default memcheck tool is supposed to catch, but of course the Valgrind VM changes the threading behavior, so unfortunately, it's not all that surprising that you can't reproduce the crash inside Valgrind.
Current valgrind output too large, see http://nielsmayer.com/kmid-under-valgrind-on-dual-core.txt at end: ^C==24788== ==24788== For counts of detected and suppressed errors, rerun with: -v ==24788== Use --history-level=approx or =none to gain increased speed, at ==24788== the cost of reduced accuracy of conflicting-access information ==24788== ERROR SUMMARY: 47844 errors from 79 contexts (suppressed: 1856359 from 304) Killed
Created attachment 47684 [details] output from 'valgrind --tool=helgrind kmid *.mid' The output mentioned above at URL http://nielsmayer.com/kmid-under-valgrind-on-dual-core.txt is attached.
SVN commit 1135192 by pedrol: ALSAMIDIOutput::sendEvent() is called from two different threads. To avoid problems, this method needs to be protected by a mutex. It may be one of the causes of the crashes detected in a quad core system, but I couldn't reproduce it. CCBUG: 240391 M +10 -5 alsamidioutput.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1135192
Do you want me to build test packages with this patch so we can see if this fixes it?
SVN commit 1135471 by pedrol: Player object signals should be always queued to other objects. CCBUG: 240391 M +6 -4 alsamidiobject.cpp M +3 -3 alsamidioutput.cpp M +3 -1 player.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1135471
Kevin: this is a work in progress, I don't know if or when it can be finished. I can't reproduce the bug, so I'm not able to say if it has been fixed or not. If anyone wants to help, please compile KMid _in_debug_mode_ from the SVN sources, and test. If the program crashes, please post the stack trace. Thank you.
SVN commit 1135559 by pedrol: snd_seq_event_output_direct() is not thread safe. Workaround: centralized output, protected by a mutex. CCBUG: 240391 M +1 -0 alsamidiobject.cpp M +11 -1 alsamidioutput.cpp M +3 -0 alsamidioutput.h M +11 -0 player.cpp M +5 -2 player.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1135559
SVN commit 1135571 by pedrol: Reverted last commit. CCBUG: 240391 M +0 -1 alsamidiobject.cpp M +1 -11 alsamidioutput.cpp M +0 -3 alsamidioutput.h M +0 -11 player.cpp M +2 -5 player.h WebSVN link: http://websvn.kde.org/?view=rev&revision=1135571
SVN commit 1135743 by pedrol: snd_seq_event_output_direct() is not thread safe, this workaround uses two ALSA clients: one in the player thread, and another one for output. CCBUG: 240391 M +8 -2 alsamidiobject.cpp M +4 -11 alsamidioutput.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1135743
The last commit should fix some of the threading problems, without punishing too much the performance. Please test.
I issued scratch builds with those threading fixes (up to and including revision 1135743) for easier testing: Fedora 14: http://koji.fedoraproject.org/koji/taskinfo?taskID=2239792 Fedora 13: http://koji.fedoraproject.org/koji/taskinfo?taskID=2239795 Fedora 12: http://koji.fedoraproject.org/koji/taskinfo?taskID=2239798 Fedora 11: http://koji.fedoraproject.org/koji/taskinfo?taskID=2239807 Note: these are SCRATCH builds, i.e. I'm not pushing them anywhere yet, I'm just making them available for testing so you don't have to build the package from source. Debugging information is in the kmid2-debuginfo package as usual.
I ran the F12 scratch build from #39 and have been playing files out of the megatrade-midi collection for about 10 hours on the quad core machine, in essentially the same configuration that had been causing crashes previously. Pedro's latest changes fixes all the crashing and memory corruption problems I reported in this bug. Thanks to both of you for the excellent work! And thanks Pedro, for putting out this and all your other programs so I can learn how to do MIDI programming on Linux, based on your exemplary coding.
Thanks to Niels for the report and testing, and to Kevin for the packages. If you both agree, I will close the report as fixed. I'm going to prepare a release 2.3.1 in a few days, maybe this saturday, including all the fixes and the new/updated translations. There will be also a new Drumstick release 0.3.2, hopefully tomorrow.
Yes, this bug can be closed. Looking forward to the updated versions.
Let's close this, it seems to be fixed. I'll take care of updating the Fedora packages. I think I'll just wait for 2.3.1 given that it's imminent.
It finally finished playing through the entire directory of MIDI files, and exited successfully when I quit via the GUI: gnulem-127-.../Music/megatrade-midi> kmid *.mid kmid(24269)/kdeui (kdelibs): Attempt to use QAction "show_volume_pitch" with KXMLGUIFactory! kmid(24269)/kdeui (kdelibs): Attempt to use QAction "show_position" with KXMLGUIFactory! kmid(24269)/kdeui (kdelibs): Attempt to use QAction "show_codecs" with KXMLGUIFactory! kmid(24269)/kdeui (kdelibs): Attempt to use QAction "show_rhythm" with KXMLGUIFactory! kmid(24269)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic" kmid(24269)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/home/npm/.local/share/mime/magic" kmid(24269)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: It played all 502 Files: gnulem-111-~/Documents> ls -1 ~/.kde/share/apps/kmid/songlib/*.cfg | wc -l 502