Bug 177009 - digikam eats all CPU when Restore tool is selected
Summary: digikam eats all CPU when Restore tool is selected
Status: RESOLVED FIXED
Alias: None
Product: digikam
Classification: Applications
Component: Plugin-Editor-Restoration (show other bugs)
Version: 0.10.0
Platform: openSUSE Unspecified
: NOR normal
Target Milestone: ---
Assignee: Digikam Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-05 20:43 UTC by Francisco Lorés
Modified: 2017-07-09 18:43 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In: 0.10.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Francisco Lorés 2008-12-05 20:43:28 UTC
Version:           0.10.0-beta6 (using KDE 4.1.3)
Compiler:          gcc-4.3-39.1 
Installed from:    SuSE RPMs

A Canon RAW (.CR2) image is imported OK. Then the Restore plugin is invoked. Immediately both CPUs (AMD Athlon 64 X2 4200+) are eaten up at 96-99% each, even after cancelling the plugin dialog. Of course the user interface becomes terribly slow thereafter. Sometimes (quite difficult to reproduce) digikam even hangs.

The distro is openSuSE 11.0, kernel 2.6.25.18-0.2-pae. digikam has been installed from repositories, automatically resolving package dependencies (libkdcraw, libkipi, and kipi-plugins). No crashes nor tracebacks :-( but, just in case, the debug packages are installed. I have only the standard output available (not really very helpful):

Starting to load Plugins.                                                                                                                                                           
Files:  "CompassFloatItem.so"                                                                                                                                                       
Files:  "MapScaleFloatItem.so"                                                                                                                                                      
Files:  "MarbleOverviewMap.so"                                                                                                                                                      
Files:  "MarbleStarsPlugin.so"                                                                                                                                                      
=== MarbleDirs: ===                                                                                                                                                                 
Local Path: "/home/fsl/.marble/data"                                                                                                                                                
Plugin Local Path: "/home/fsl/.marble/plugins"                                                                                                                                      
                                                                                                                                                                                    
Marble Data Path (Run Time) : ""                                                                                                                                                    
Marble Data Path (Compile Time): "/usr/share/kde4/apps/marble/data"                                                                                                                 
                                                                                                                                                                                    
Marble Plugin Path (Run Time) : ""                                                                                                                                                  
Marble Plugin Path (Compile Time): "/usr/lib/kde4/plugins/marble"                                                                                                                   
                                                                                                                                                                                    
System Path: "/usr/share/kde4/apps/marble/data"                                                                                                                                     
Plugin System Path: "/usr/lib/kde4/plugins/marble"                                                                                                                                  
===================                                                                                                                                                                 
"CompassFloatItem.so"  -  "/usr/lib/kde4/plugins/marble/CompassFloatItem.so"                                                                                                        
"MapScaleFloatItem.so"  -  "/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so"                                                                                                      
"MarbleOverviewMap.so"  -  "/usr/lib/kde4/plugins/marble/MarbleOverviewMap.so"                                                                                                      
"MarbleStarsPlugin.so"  -  "/usr/lib/kde4/plugins/marble/MarbleStarsPlugin.so"                                                                                                      
Use workaround:  0                                                                                                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/cityplacemarks.cache"                                                                             
Style reset requested.                                                                                                                                                              
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/baseplacemarks.cache"                                                                             
Style reset requested.                                                                                                                                                              
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/elevplacemarks.cache"                                                                             
Style reset requested.                                                                                                                                                              
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/otherplacemarks.cache"                                                                            
Style reset requested.                                                                                                                                                              
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/boundaryplacemarks.cache"                                                                         
Style reset requested.                                                                                                                                                              
loadMapTheme "earth/citylights/citylights.dgml"                                                                                                                                     

Succesfully parsed file! 
loadMapTheme "earth/bluemarble/bluemarble.dgml" 

Succesfully parsed file! 
MapThemeId "earth/srtm/srtm.dgml" 
loadMapTheme "earth/srtm/srtm.dgml" 

Succesfully parsed file! 
DGML2 Name       :  "Atlas" 
Style reset requested.      
THEME CHANGED: *** "earth/srtm/srtm.dgml" 
Starting to load Plugins.                 
Files:  "CompassFloatItem.so"             
Files:  "MapScaleFloatItem.so"            
Files:  "MarbleOverviewMap.so"            
Files:  "MarbleStarsPlugin.so"            
=== MarbleDirs: ===                       
Local Path: "/home/fsl/.marble/data"      
Plugin Local Path: "/home/fsl/.marble/plugins" 
                                               
Marble Data Path (Run Time) : ""               
Marble Data Path (Compile Time): "/usr/share/kde4/apps/marble/data" 
                                                                    
Marble Plugin Path (Run Time) : ""                                  
Marble Plugin Path (Compile Time): "/usr/lib/kde4/plugins/marble"   
                                                                    
System Path: "/usr/share/kde4/apps/marble/data"                     
Plugin System Path: "/usr/lib/kde4/plugins/marble"                  
===================                                                 
"CompassFloatItem.so"  -  "/usr/lib/kde4/plugins/marble/CompassFloatItem.so" 
"MapScaleFloatItem.so"  -  "/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so" 
"MarbleOverviewMap.so"  -  "/usr/lib/kde4/plugins/marble/MarbleOverviewMap.so" 
"MarbleStarsPlugin.so"  -  "/usr/lib/kde4/plugins/marble/MarbleStarsPlugin.so" 
Use workaround:  0                                                             
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/cityplacemarks.cache" 
Style reset requested.                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/baseplacemarks.cache" 
Style reset requested.                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/elevplacemarks.cache" 
Style reset requested.                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/otherplacemarks.cache" 
Style reset requested.                                                                                   
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/boundaryplacemarks.cache" 
Style reset requested.                                                                                      
loadMapTheme "earth/citylights/citylights.dgml"                                                             

Succesfully parsed file! 
loadMapTheme "earth/bluemarble/bluemarble.dgml" 

Succesfully parsed file! 
MapThemeId "earth/srtm/srtm.dgml" 
loadMapTheme "earth/srtm/srtm.dgml" 

Succesfully parsed file! 
DGML2 Name       :  "Atlas" 
Style reset requested.      
THEME CHANGED: *** "earth/srtm/srtm.dgml" 
Object::connect: No such signal Digikam::GPSSearchWidget::regionSelected(QList<double>)
Style reset requested.                                                                 
Style reset requested.                                                                 
Style reset requested.                                                                 
Style reset requested.                                                                 
Style reset requested.                                                                 
digikam(6314)/KIPI (general) KIPIGalleryExportPlugin::Gallery::load: Reading data from galleryrc file.. 

Style reset requested. 
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Style reset requested.                                                         
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Starting to load Plugins.                                                      
Files:  "CompassFloatItem.so"                                                  
Files:  "MapScaleFloatItem.so"                                                 
Files:  "MarbleOverviewMap.so"                                                 
Files:  "MarbleStarsPlugin.so"                                                 
=== MarbleDirs: ===                                                            
Local Path: "/home/fsl/.marble/data"                                           
Plugin Local Path: "/home/fsl/.marble/plugins"                                 
                                                                               
Marble Data Path (Run Time) : ""                                               
Marble Data Path (Compile Time): "/usr/share/kde4/apps/marble/data"            
                                                                               
Marble Plugin Path (Run Time) : ""                                             
Marble Plugin Path (Compile Time): "/usr/lib/kde4/plugins/marble"              
                                                                               
System Path: "/usr/share/kde4/apps/marble/data"                                
Plugin System Path: "/usr/lib/kde4/plugins/marble"                             
===================                                                            
"CompassFloatItem.so"  -  "/usr/lib/kde4/plugins/marble/CompassFloatItem.so"   
"MapScaleFloatItem.so"  -  "/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so" 
"MarbleOverviewMap.so"  -  "/usr/lib/kde4/plugins/marble/MarbleOverviewMap.so" 
"MarbleStarsPlugin.so"  -  "/usr/lib/kde4/plugins/marble/MarbleStarsPlugin.so" 
Use workaround:  0                                                             
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/cityplacemarks.cache" 
Style reset requested.                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/baseplacemarks.cache" 
Style reset requested.                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/elevplacemarks.cache" 
Style reset requested.                                                                                  
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/otherplacemarks.cache" 
Style reset requested.                                                                                   
"Loading Default Placemark Cache File:/usr/share/kde4/apps/marble/data/placemarks/boundaryplacemarks.cache" 
Style reset requested.                                                                                      
loadMapTheme "earth/citylights/citylights.dgml"                                                             

Succesfully parsed file! 
loadMapTheme "earth/bluemarble/bluemarble.dgml" 

Succesfully parsed file! 
MapThemeId "earth/srtm/srtm.dgml" 
loadMapTheme "earth/srtm/srtm.dgml" 

Succesfully parsed file!
DGML2 Name       :  "Atlas"
Style reset requested.
THEME CHANGED: *** "earth/srtm/srtm.dgml"
digikam(6314) Digikam::DImgInterface::getImg: d->image is NULL

QPainter::begin: Cannot paint on a null pixmap
QPainter::end: Painter not active, aborted
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Style reset requested.
digikam(6314) Digikam::DImgInterface::getImg: d->image is NULL

QPainter::begin: Cannot paint on a null pixmap
QPainter::end: Painter not active, aborted
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Style reset requested.
digikam(6314) Digikam::DImgInterface::getImg: d->image is NULL

QPainter::begin: Cannot paint on a null pixmap
QPainter::end: Painter not active, aborted
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Style reset requested.
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Warning: Size 12108 of Exif.Canon.0x4002 exceeds 4096 bytes limit. Not decoded.
Warning: Size 15988 of Exif.Canon.0x4005 exceeds 4096 bytes limit. Not decoded.
Wavelet denoising...
Wavelet denoising...
Scaling with darkness 1025, saturation 14605, and
multipliers 1,000000 0,465878 0,752502 0,465878
Scaling with darkness 1025, saturation 14605, and
multipliers 1,000000 0,465878 0,752502 0,465878
Rebuilding highlights...
AHD interpolation...
Applying color profile...
Building histograms...
LibRaw: data info: width 2145 height 1428 rgbmax 65535
Rebuilding highlights...
Applying color profile...
Building histograms...
LibRaw: data info: width 4290 height 2856 rgbmax 65535
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float
digikam(6314) KConfigGroup::convertToQVariant: unhandled type  float

Suggestions welcome :-)
Comment 1 caulier.gilles 2009-01-16 15:44:47 UTC
digikam(6314) KConfigGroup::convertToQVariant: unhandled type float digikam(6314) KConfigGroup::convertToQVariant: unhandled type float digikam(6314) KConfigGroup::convertToQVariant: unhandled type float digikam(6314) KConfigGroup::convertToQVariant: unhandled type float digikam(6314) KConfigGroup::convertToQVariant: unhandled type float digikam(6314) KConfigGroup::convertToQVariant: unhandled type float digikam(6314) KConfigGroup::convertToQVariant: unhandled type float 

This is the problem. Something have been broken in code during EditorTool porting. I will fix it.

Gilles Caulier
Comment 2 caulier.gilles 2009-01-16 15:48:11 UTC
SVN commit 912023 by cgilles:

digiKAm from trunk : Restoration tool :
- do not mix settings : Nb iteration = da ==> Greystoration algorithm make an infinite loop with default settings.
- use double cast for each Greystoration parameters relevant.
BUG: 177009


 M  +1 -2      imageplugin_restoration.cpp  
 M  +1 -1      imageplugin_restoration.h  
 M  +27 -27    restorationtool.cpp  
 M  +1 -1      restorationtool.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=912023