Bug 195242 - Crashed when aborting scan (0-pointer ScanManager)
Summary: Crashed when aborting scan (0-pointer ScanManager)
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 2.1
Platform: Unlisted Binaries Linux
: NOR crash
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
: 195110 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-06-04 18:58 UTC by simon
Modified: 2009-06-12 09:13 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description simon 2009-06-04 18:58:02 UTC
Application that crashed: amarok
Version of the application: 2.1-SVN
KDE Version: 4.2.90 (KDE 4.2.90 (KDE 4.3 Beta2))
Qt Version: 4.5.1
Operating System: Linux 2.6.30-rc6-git3 x86_64

What I was doing when the application crashed:
don't know why, just happend when aborting a incremental scan

 -- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
[Current thread is 0 (LWP 13558)]

Thread 18 (Thread 0x410a7950 (LWP 13560)):
#0  0x00007f370328dc3d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36f191aaf5 in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#3  0x00007f370286eccd in clone () from /lib/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 17 (Thread 0x41f57950 (LWP 13561)):
#0  0x00007f3702866bb6 in poll () from /lib/libc.so.6
#1  0x00007f36fae8f5e4 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f36fae8fc9b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#3  0x00007f37035fc465 in QEventDispatcherGlib::processEvents (this=0x8623b0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:326
#4  0x00007f37035d2f85 in QEventLoop::processEvents (this=<value optimized out>, flags=@0x41f56f10) at kernel/qeventloop.cpp:149
#5  0x00007f37035d30f6 in QEventLoop::exec (this=0x41f56f50, flags=@0x41f56f60) at kernel/qeventloop.cpp:196
#6  0x00007f37034f804c in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#7  0x00007f36f1b7187e in Phonon::Xine::XineThread::run () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#8  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x821670) at thread/qthread_unix.cpp:189
#9  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#10 0x00007f370286eccd in clone () from /lib/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 16 (Thread 0x42758950 (LWP 13564)):
#0  0x00007f36f1fb2314 in snd_ctl_poll_descriptors () from /usr/lib/libasound.so.2
#1  0x00007f36f1fb868c in snd_mixer_poll_descriptors () from /usr/lib/libasound.so.2
#2  0x00007f36edebe927 in ?? () from /usr/lib64/xine/plugins/1.26/xineplug_ao_out_alsa.so
#3  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#4  0x00007f370286eccd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 15 (Thread 0x42f59950 (LWP 13565)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36f1927e7d in ?? () from /usr/lib64/libxine.so.1
#2  0x00007f36f1928cc8 in ?? () from /usr/lib64/libxine.so.1
#3  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#4  0x00007f370286eccd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 14 (Thread 0x4375a950 (LWP 13567)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36ed6ed035 in os_event_wait_low () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed6eb734 in os_aio_simulated_handle () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f36ed6a7133 in fil_aio_wait () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#4  0x00007f36ed545dbd in io_handler_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#5  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#6  0x00007f370286eccd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x43f5b950 (LWP 13568)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36ed6ed035 in os_event_wait_low () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed6eb734 in os_aio_simulated_handle () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f36ed6a7133 in fil_aio_wait () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#4  0x00007f36ed545dbd in io_handler_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#5  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#6  0x00007f370286eccd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 12 (Thread 0x4475c950 (LWP 13569)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36ed6ed035 in os_event_wait_low () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed6eb734 in os_aio_simulated_handle () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f36ed6a7133 in fil_aio_wait () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#4  0x00007f36ed545dbd in io_handler_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#5  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#6  0x00007f370286eccd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 11 (Thread 0x44f5d950 (LWP 13570)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36ed6ed035 in os_event_wait_low () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed6eb734 in os_aio_simulated_handle () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f36ed6a7133 in fil_aio_wait () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#4  0x00007f36ed545dbd in io_handler_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#5  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#6  0x00007f370286eccd in clone () from /lib/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 10 (Thread 0x45f5f950 (LWP 13572)):
#0  0x00007f3702868a62 in select () from /lib/libc.so.6
#1  0x00007f36ed6ed46b in os_thread_sleep () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed543caa in srv_lock_timeout_and_monitor_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#4  0x00007f370286eccd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x46760950 (LWP 13573)):
#0  0x00007f3702868a62 in select () from /lib/libc.so.6
#1  0x00007f36ed6ed46b in os_thread_sleep () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed54433a in srv_error_monitor_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#4  0x00007f370286eccd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x46f61950 (LWP 13574)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f36ed6ed035 in os_event_wait_low () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#2  0x00007f36ed544f8e in srv_master_thread () from /home/user/kde/lib64/kde4/libamarok_collection-sqlcollection.so
#3  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#4  0x00007f370286eccd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x47762950 (LWP 13579)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f37034fb875 in QWaitCondition::wait (this=<value optimized out>, mutex=0x184c1c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f36ffcb12d4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=<value optimized out>, th=0x1705e20)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f36ffcb5170 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1714620, th=0x1705e20)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f36ffcb37e4 in ThreadWeaver::ThreadRunHelper::run (this=0x47761fa0, parent=0x171f720, th=0x1705e20)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:87
#5  0x00007f36ffcb3905 in ThreadWeaver::Thread::run (this=0x1705e20) at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:142
#6  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x1705e20) at thread/qthread_unix.cpp:189
#7  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#8  0x00007f370286eccd in clone () from /lib/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 6 (Thread 0x47f63950 (LWP 13580)):
#0  0x00007f3702868a62 in select () from /lib/libc.so.6
#1  0x00007f37035b5a7e in QProcessManager::run (this=0x68f4a0) at io/qprocess_unix.cpp:305
#2  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x68f4a0) at thread/qthread_unix.cpp:189
#3  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#4  0x00007f370286eccd in clone () from /lib/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x48764950 (LWP 13589)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f37034fb875 in QWaitCondition::wait (this=<value optimized out>, mutex=0x184c1c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f36ffcb12d4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=<value optimized out>, th=0x1992380)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f36ffcb5170 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1714620, th=0x1992380)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f36ffcb37e4 in ThreadWeaver::ThreadRunHelper::run (this=0x48763fa0, parent=0x171f720, th=0x1992380)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:87
#5  0x00007f36ffcb3905 in ThreadWeaver::Thread::run (this=0x1992380) at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:142
#6  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x1992380) at thread/qthread_unix.cpp:189
#7  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#8  0x00007f370286eccd in clone () from /lib/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x48f65950 (LWP 13590)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f37034fb875 in QWaitCondition::wait (this=<value optimized out>, mutex=0x184c1c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f36ffcb12d4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=<value optimized out>, th=0x198c960)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f36ffcb5170 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1714620, th=0x198c960)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f36ffcb37e4 in ThreadWeaver::ThreadRunHelper::run (this=0x48f64fa0, parent=0x171f720, th=0x198c960)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:87
#5  0x00007f36ffcb3905 in ThreadWeaver::Thread::run (this=0x198c960) at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:142
#6  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x198c960) at thread/qthread_unix.cpp:189
#7  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#8  0x00007f370286eccd in clone () from /lib/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x49766950 (LWP 13623)):
#0  0x00007f370328d9b9 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f37034fb875 in QWaitCondition::wait (this=<value optimized out>, mutex=0x184c1c0, time=18446744073709551615) at thread/qwaitcondition_unix.cpp:87
#2  0x00007f36ffcb12d4 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=<value optimized out>, th=0x3b89120)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WeaverImpl.cpp:365
#3  0x00007f36ffcb5170 in ThreadWeaver::WorkingHardState::applyForWork (this=0x1714620, th=0x3b89120)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/WorkingHardState.cpp:71
#4  0x00007f36ffcb37e4 in ThreadWeaver::ThreadRunHelper::run (this=0x49765fa0, parent=0x171f720, th=0x3b89120)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:87
#5  0x00007f36ffcb3905 in ThreadWeaver::Thread::run (this=0x3b89120) at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/threadweaver/Weaver/Thread.cpp:142
#6  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x3b89120) at thread/qthread_unix.cpp:189
#7  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#8  0x00007f370286eccd in clone () from /lib/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x49f67950 (LWP 13625)):
#0  0x00007f370328dc3d in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#1  0x00007f37034fb857 in QWaitCondition::wait (this=<value optimized out>, mutex=0x1a7eb60, time=30000) at thread/qwaitcondition_unix.cpp:85
#2  0x00007f37034f161e in QThreadPoolThread::run (this=0x1f59b10) at concurrent/qthreadpool.cpp:140
#3  0x00007f37034fabf0 in QThreadPrivate::start (arg=0x1f59b10) at thread/qthread_unix.cpp:189
#4  0x00007f3703289097 in start_thread () from /lib/libpthread.so.0
#5  0x00007f370286eccd in clone () from /lib/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f3705aea7b0 (LWP 13558)):
[KCrash Handler]
#5  0x00007f36ed4147b1 in ScanManager::isDirInCollection (this=0x0, path=@0x7fff7f878200) at /home/user/kde/src/amarok/src/collection/sqlcollection/ScanManager.cpp:216
#6  0x00007f36ed421913 in SqlCollection::isDirInCollection (this=0x8288e0, path=@0x7fff7f878240) at /home/user/kde/src/amarok/src/collection/sqlcollection/SqlCollection.cpp:179
#7  0x00007f36ed4228fe in SqlCollectionDBusHandler::isDirInCollection (this=0x18224e0, path=@0x39e5220) at /home/user/kde/src/amarok/src/collection/sqlcollection/SqlCollectionDBusHandler.cpp:39
#8  0x00007f36ed44ec5f in SqlCollectionAdaptor::isDirInCollection (this=0x184e9f0, in0=@0x39e5220) at /home/user/kde/build/amarok/src/collection/sqlcollection/SqlCollectionAdaptor.cpp:39
#9  0x00007f36ed44ecc4 in SqlCollectionAdaptor::qt_metacall (this=0x184e9f0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7fff7f878360)
    at /home/user/kde/build/amarok/src/collection/sqlcollection/SqlCollectionAdaptor.moc:77
#10 0x00007f37038d84b8 in QDBusConnectionPrivate::deliverCall (this=0x67f250, object=0x184e9f0, msg=@0x3b60310, metaTypes=@0x1a97b10, slotIdx=4) at qdbusintegrator.cpp:891
#11 0x00007f37038d93bf in QDBusConnectionPrivate::activateCall (this=0x67f250, object=0x184e9f0, flags=273, msg=@0x3b60310) at qdbusintegrator.cpp:803
#12 0x00007f37038d9b61 in QDBusConnectionPrivate::activateObject (this=0x67f250, node=@0x3b602e8, msg=@0x3b60310, pathStartPos=<value optimized out>) at qdbusintegrator.cpp:1344
#13 0x00007f37038d9c28 in QDBusActivateObjectEvent::placeMetaCall (this=0x3b602a0) at qdbusintegrator.cpp:1469
#14 0x00007f37035e4871 in QObject::event (this=0x18224e0, e=0x3b602a0) at kernel/qobject.cpp:1115
#15 0x00007f37041182fe in QApplicationPrivate::notify_helper () from /usr/lib64/qt4/libQtGui.so.4
#16 0x00007f370411f6e2 in QApplication::notify () from /usr/lib64/qt4/libQtGui.so.4
#17 0x00007f3705609411 in KApplication::notify (this=0x7fff7f879100, receiver=0x18224e0, event=0x3b602a0)
    at /var/tmp/portage/kde-base/kdelibs-9999-r1/work/kdelibs-9999/kdeui/kernel/kapplication.cpp:302
#18 0x00007f37035d3cf3 in QCoreApplication::notifyInternal (this=0x7fff7f879100, receiver=0x18224e0, event=0x3b602a0) at kernel/qcoreapplication.cpp:606
#19 0x00007f37035d4f8a in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x60f1d0) at kernel/qcoreapplication.h:213
#20 0x00007f37035fbe63 in postEventSourceDispatch (s=<value optimized out>) at kernel/qcoreapplication.h:218
#21 0x00007f36fae8c4b2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#22 0x00007f36fae8f795 in ?? () from /usr/lib/libglib-2.0.so.0
#23 0x00007f36fae8fc9b in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#24 0x00007f37035fc44e in QEventDispatcherGlib::processEvents (this=0x68b990, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:324
#25 0x00007f37041a08cf in ?? () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007f37035d2f85 in QEventLoop::processEvents (this=<value optimized out>, flags=@0x7fff7f879050) at kernel/qeventloop.cpp:149
#27 0x00007f37035d30f6 in QEventLoop::exec (this=0x7fff7f879090, flags=@0x7fff7f8790a0) at kernel/qeventloop.cpp:196
#28 0x00007f37035d531b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#29 0x0000000000403799 in main (argc=2, argv=0x7fff7f87a2d8) at /home/user/kde/src/amarok/src/main.cpp:128

Reported using DrKonqi
Comment 1 Mark Kretschmann 2009-06-04 19:06:58 UTC
This backtrace is pretty interesting. This line clearly shows that a 0-pointer of ScanManager is being dereferenced:

[KCrash Handler]
#5  0x00007f36ed4147b1 in ScanManager::isDirInCollection (this=0x0,
path=@0x7fff7f878200) at
/home/user/kde/src/amarok/src/collection/sqlcollection/ScanManager.cpp:216


Although the report might be a dupe (I think I've seen a similar before), I would like to keep this one open because of the good backtrace. Will look into the problem.
Comment 2 Mark Kretschmann 2009-06-08 11:51:36 UTC
SVN commit 978819 by markey:

Don't crash when starting a collection scan after a previous scan had
been aborted.

We destroyed the ScanManager instance when aborting the scan,
and then never instantiated it again, ending up with a 0-pointer dereference.
Now we reinstantiate the ScanManager automatically.

This seems the safest way to fix this issue for now. I pondered
refactoring the code to keep the ScanManager always alive, but this
would require major changes and seemed too risky at this point.

BUG: 195242

 M  +0 -1      ScanManager.h  
 M  +15 -9     SqlCollection.cpp  
 M  +1 -4      SqlCollection.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=978819
Comment 3 Jeff Mitchell 2009-06-09 00:37:04 UTC
SVN commit 979107 by mitchell:

Fix bug 195242 moar properly.  Don't keep regen-ing new instances of the scan manager, just abort what's there.  Which means stop having the parser delete its parent for some odd reason.  Also a lot of pointer safety checks added.

BUG: 195242


 M  +21 -13    ScanManager.cpp  
 M  +2 -0      ScanManager.h  
 M  +18 -15    SqlCollection.cpp  
 M  +4 -1      SqlCollection.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=979107
Comment 4 Mark Kretschmann 2009-06-12 09:13:29 UTC
*** Bug 195110 has been marked as a duplicate of this bug. ***