[Digikam-devel] [Bug 209207] Crash when deleting saved searches (GPS and Timeline)

Michael G. Hansen mike at mghansen.de
Sun Oct 4 10:54:06 BST 2009


https://bugs.kde.org/show_bug.cgi?id=209207





--- Comment #10 from Michael G. Hansen <mike mghansen de>  2009-10-04 11:54:00 ---
Okay, latest SVN (1031168): Could not crash it when run normally, only under
Valgrind. Steps to reproduce: Timeline-> create searches a1, a2, a3, delete
a2->crash.

Valgrind log of 64-bit version after clicking "Yes" in delete confirmation:

==7256== Invalid read of size 8                                                 
==7256==    at 0x6740AD: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:150)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==    by 0x5F39DD:
Digikam::TimeLineFolderView::qt_metacall(QMetaObject::Call, int, void**)
(timelinefolderview.moc:93)                                                     
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x6C73CA4: Q3ListView::contextMenuRequested(Q3ListViewItem*,
QPoint const&, int) (moc_q3listview.cpp:372)                                    
==7256==    by 0x6B22DE4:
Q3ListView::contentsContextMenuEvent(QContextMenuEvent*) (q3listview.cpp:4370)  
==7256==  Address 0x31ad9ed0 is 0 bytes inside a block of size 16 free'd        
==7256==    at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346)      
==7256==    by 0x6740D1: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:152)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==    by 0x5F39DD:
Digikam::TimeLineFolderView::qt_metacall(QMetaObject::Call, int, void**)
(timelinefolderview.moc:93)                                                     
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x6C73CA4: Q3ListView::contextMenuRequested(Q3ListViewItem*,
QPoint const&, int) (moc_q3listview.cpp:372)                                    
==7256==                                                                        
==7256== Invalid free() / delete / delete[]                                     
==7256==    at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346)      
==7256==    by 0x6740D1: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:152)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==    by 0x5F39DD:
Digikam::TimeLineFolderView::qt_metacall(QMetaObject::Call, int, void**)
(timelinefolderview.moc:93)                                                     
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x6C73CA4: Q3ListView::contextMenuRequested(Q3ListViewItem*,
QPoint const&, int) (moc_q3listview.cpp:372)                                    
==7256==  Address 0x31ad9ed0 is 0 bytes inside a block of size 16 free'd        
==7256==    at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346)      
==7256==    by 0x6740D1: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:152)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==    by 0x5F39DD:
Digikam::TimeLineFolderView::qt_metacall(QMetaObject::Call, int, void**)
(timelinefolderview.moc:93)                                                     
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x6C73CA4: Q3ListView::contextMenuRequested(Q3ListViewItem*,
QPoint const&, int) (moc_q3listview.cpp:372)                                    
==7256==                                                                        
==7256== Invalid read of size 1                                                 
==7256==    at 0x4C2410E: memmove (mc_replace_strmem.c:613)                     
==7256==    by 0xB1465F8: QListData::remove(int) (qlistdata.cpp:218)            
==7256==    by 0xB14663A: QListData::erase(void**) (qlistdata.cpp:283)          
==7256==    by 0x675241:
QList<Digikam::HistoryItem*>::erase(QList<Digikam::HistoryItem*>::iterator)
(qlist.h:392)                                                                 
==7256==    by 0x674102: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:153)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==  Address 0x39bafa90 is 0 bytes after a block of size 128 alloc'd       
==7256==    at 0x4C222A8: realloc (vg_replace_malloc.c:476)                     
==7256==    by 0xB1466BA: QListData::realloc(int) (qlistdata.cpp:111)           
==7256==    by 0xB1468DA: QListData::append() (qlistdata.cpp:131)               
==7256==    by 0x6751D2:
QList<Digikam::HistoryItem*>::append(Digikam::HistoryItem* const&)
(qlist.h:429)                                                                   
==7256==    by 0x675202:
QList<Digikam::HistoryItem*>::push_back(Digikam::HistoryItem* const&)
(qlist.h:266)                                                                   
==7256==    by 0x674702: Digikam::AlbumHistory::addAlbum(Digikam::Album*,
QWidget*) (albumhistory.cpp:126)                                                
==7256==    by 0x6F843F:
Digikam::DigikamView::slotAlbumSelected(Digikam::Album*) (digikamview.cpp:1175) 
==7256==    by 0x6F8B36: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:287)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x683D3C:
Digikam::AlbumManager::signalAlbumCurrentChanged(Digikam::Album*)
(albummanager.moc:242)                                                          
==7256==    by 0x683D6F:
Digikam::AlbumManager::setCurrentAlbum(Digikam::Album*) (albummanager.cpp:1632) 
==7256==    by 0x5F504C:
Digikam::TimeLineView::createNewDateSearchAlbum(QString const&)
(timelineview.cpp:462)                                                          
==7256==                                                                        
==7256== Invalid read of size 1                                                 
==7256==    at 0x4C24100: memmove (mc_replace_strmem.c:613)                     
==7256==    by 0xB1465F8: QListData::remove(int) (qlistdata.cpp:218)            
==7256==    by 0xB14663A: QListData::erase(void**) (qlistdata.cpp:283)          
==7256==    by 0x675241:
QList<Digikam::HistoryItem*>::erase(QList<Digikam::HistoryItem*>::iterator)
(qlist.h:392)                                                                 
==7256==    by 0x674102: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:153)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==  Address 0x39bafa91 is 1 bytes after a block of size 128 alloc'd       
==7256==    at 0x4C222A8: realloc (vg_replace_malloc.c:476)                     
==7256==    by 0xB1466BA: QListData::realloc(int) (qlistdata.cpp:111)           
==7256==    by 0xB1468DA: QListData::append() (qlistdata.cpp:131)               
==7256==    by 0x6751D2:
QList<Digikam::HistoryItem*>::append(Digikam::HistoryItem* const&)
(qlist.h:429)                                                                   
==7256==    by 0x675202:
QList<Digikam::HistoryItem*>::push_back(Digikam::HistoryItem* const&)
(qlist.h:266)                                                                   
==7256==    by 0x674702: Digikam::AlbumHistory::addAlbum(Digikam::Album*,
QWidget*) (albumhistory.cpp:126)                                                
==7256==    by 0x6F843F:
Digikam::DigikamView::slotAlbumSelected(Digikam::Album*) (digikamview.cpp:1175) 
==7256==    by 0x6F8B36: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:287)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x683D3C:
Digikam::AlbumManager::signalAlbumCurrentChanged(Digikam::Album*)
(albummanager.moc:242)                                                          
==7256==    by 0x683D6F:
Digikam::AlbumManager::setCurrentAlbum(Digikam::Album*) (albummanager.cpp:1632) 
==7256==    by 0x5F504C:
Digikam::TimeLineView::createNewDateSearchAlbum(QString const&)
(timelineview.cpp:462)                                                          
==7256==                                                                        
==7256== Invalid write of size 1                                                
==7256==    at 0x4C24104: memmove (mc_replace_strmem.c:613)                     
==7256==    by 0xB1465F8: QListData::remove(int) (qlistdata.cpp:218)            
==7256==    by 0xB14663A: QListData::erase(void**) (qlistdata.cpp:283)          
==7256==    by 0x675241:
QList<Digikam::HistoryItem*>::erase(QList<Digikam::HistoryItem*>::iterator)
(qlist.h:392)                                                                 
==7256==    by 0x674102: Digikam::AlbumHistory::deleteAlbum(Digikam::Album*)
(albumhistory.cpp:153)                                                          
==7256==    by 0x6EFC17:
Digikam::DigikamView::slotAlbumDeleted(Digikam::Album*) (digikamview.cpp:821)   
==7256==    by 0x6F8AE2: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:283)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x687E48:
Digikam::AlbumManager::signalAlbumDeleted(Digikam::Album*)
(albummanager.moc:222)                                                          
==7256==    by 0x6884DE: Digikam::AlbumManager::deleteSAlbum(Digikam::SAlbum*)
(albummanager.cpp:2356)                                                         
==7256==    by 0x5F23EA:
Digikam::TimeLineFolderView::searchDelete(Digikam::SAlbum*)
(timelinefolderview.cpp:177)                                                    
==7256==    by 0x5F32B1:
Digikam::TimeLineFolderView::slotContextMenu(Q3ListViewItem*, QPoint const&,
int) (timelinefolderview.cpp:273)                                            
==7256==  Address 0x39bafa90 is 0 bytes after a block of size 128 alloc'd       
==7256==    at 0x4C222A8: realloc (vg_replace_malloc.c:476)                     
==7256==    by 0xB1466BA: QListData::realloc(int) (qlistdata.cpp:111)           
==7256==    by 0xB1468DA: QListData::append() (qlistdata.cpp:131)               
==7256==    by 0x6751D2:
QList<Digikam::HistoryItem*>::append(Digikam::HistoryItem* const&)
(qlist.h:429)                                                                   
==7256==    by 0x675202:
QList<Digikam::HistoryItem*>::push_back(Digikam::HistoryItem* const&)
(qlist.h:266)                                                                   
==7256==    by 0x674702: Digikam::AlbumHistory::addAlbum(Digikam::Album*,
QWidget*) (albumhistory.cpp:126)                                                
==7256==    by 0x6F843F:
Digikam::DigikamView::slotAlbumSelected(Digikam::Album*) (digikamview.cpp:1175) 
==7256==    by 0x6F8B36: Digikam::DigikamView::qt_metacall(QMetaObject::Call,
int, void**) (digikamview.moc:287)                                              
==7256==    by 0xB21E681: QMetaObject::activate(QObject*, int, int, void**)
(qobject.cpp:3112)                                                              
==7256==    by 0x683D3C:
Digikam::AlbumManager::signalAlbumCurrentChanged(Digikam::Album*)
(albummanager.moc:242)                                                          
==7256==    by 0x683D6F:
Digikam::AlbumManager::setCurrentAlbum(Digikam::Album*) (albummanager.cpp:1632) 
==7256==    by 0x5F504C:
Digikam::TimeLineView::createNewDateSearchAlbum(QString const&)
(timelineview.cpp:462)                                                          
==7256==                                                                        
==7256==                                                                        
==7256== More than 10000000 total errors detected.  I'm not reporting any more. 
==7256== Final error counts will be inaccurate.  Go fix your program!           
==7256== Rerun with --error-limit=no to disable this cutoff.  Note              
==7256== that errors may occur in your program without prior warning from       
==7256== Valgrind, because errors are no longer being displayed.                
==7256==                                                                        
KCrash: Application 'digikam' crashing...                                       
Unable to start Dr. Konqi                                                       
--7256-- VALGRIND INTERNAL ERROR: Valgrind received a signal 11 (SIGSEGV) -
exiting                                                                         
--7256-- si_code=1;  Faulting address: 0x7;  sp: 0x41336e080                    

valgrind: the 'impossible' happened:
   Killed by fatal signal           
==7256==    at 0x38035895: unlinkBlock (m_mallocfree.c:368)
==7256==    by 0x38037780: vgPlain_arena_free (m_mallocfree.c:1517)
==7256==    by 0x38001E91: die_and_free_mem (mc_malloc_wrappers.c:123)
==7256==    by 0x38064768: vgPlain_scheduler (scheduler.c:1362)       
==7256==    by 0x38033E8D: final_tidyup (m_main.c:2581)               
==7256==    by 0x380341B3: shutdown_actions_NORETURN (m_main.c:2370)  
==7256==    by 0x3808D1C9: run_a_thread_NORETURN (syswrap-linux.c:146)
==7256==    by 0x3808D22A: vgModuleLocal_start_thread_NORETURN
(syswrap-linux.c:214)
==7256==    by 0x3808F4BD: ??? (in /usr/lib/valgrind/memcheck-amd64-linux)
==7256==    by 0xDEADBEEFDEADBEEE: ???
==7256==    by 0xDEADBEEFDEADBEEE: ???
==7256==    by 0xDEADBEEFDEADBEEE: ???

sched status:
  running_tid=4

Thread 4: status = VgTs_Runnable
==7256==    at 0x4C21DBC: free (vg_replace_malloc.c:325)
==7256==    by 0xBDAE5B8: ??? (in /lib/libc-2.9.so)
==7256==    by 0xBDAE278: ??? (in /lib/libc-2.9.so)
==7256==    by 0xBDAE981: ??? (in /lib/libc-2.9.so)
==7256==    by 0x4A1E590: _vgnU_freeres (vg_preloaded.c:62)

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the Digikam-devel mailing list