Bug 200634 - Adding 'World clock' plasmoid makes plasma freeze
Summary: Adding 'World clock' plasmoid makes plasma freeze
Status: RESOLVED DUPLICATE of bug 189633
Alias: None
Product: marble
Classification: Applications
Component: plasmoid (show other bugs)
Version: unspecified
Platform: Gentoo Packages Linux
: NOR crash
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords:
: 193495 197237 (view as bug list)
Depends on:
Blocks:
 
Reported: 2009-07-18 12:15 UTC by Frédéric COIFFIER
Modified: 2009-07-21 16:08 UTC (History)
7 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Output of command (5.16 KB, text/plain)
2009-07-19 11:34 UTC, Serge Koksharov
Details
plasmoidviewer worlclock: the image is not painted (4.40 KB, image/jpeg)
2009-07-19 11:43 UTC, Anne-Marie Mahfouf
Details
WorldClock backtrace (25.30 KB, text/plain)
2009-07-19 16:55 UTC, Serge Koksharov
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Frédéric COIFFIER 2009-07-18 12:15:36 UTC
Version:            (using KDE 4.2.96)
OS:                Linux
Installed from:    Gentoo Packages

(As I run KDE with French translation, I doesn't know the correct original terms)

When I add the 'World clock' plasmoid on the desktop with a drag-and-drop, the plasma dialog and plasma desktop freeze.

If I try to close the dialog, KDE proposes me to terminate plasma-desktop. If I terminate plasma-desktop, KDE doesn't restart it !

Even in KRunner, if I type just 'plasma', it doesn't suggest me 'plasma-desktop'. We have to know to complete name 'plasma-desktop'.

IMHO, there are 2 problems :
 * Correct the freeze for the 'World clock' (or remove it)
 * Create a watchdog mechanism to restart plasma-desktop
Comment 1 Anne-Marie Mahfouf 2009-07-18 15:00:56 UTC
Using latest KDE 4.3 branch (kdeedu revision 998733) I cannot reproduce. When I drag and drop the widget from the Add Widgets dialog, there's a message that it nees to create a map which is done pretty fast (a progress bar shows it but I barely had time to see it) and then the applet is drawn and working well.

I suggest you try
plasmoidviewer worldclock
and see the output from that, maybe through gdb to get a backtrace when it freezes. Please state your revision number of you can.

Thanks in advance.
Comment 2 Dario Andres 2009-07-18 17:02:25 UTC
Interesting:
Bug 193495 mentions this bug in two cases, one using Gentoo and the other Sabayon (gentoo derivative)
Bug 197237 also mentions this bug on Gentoo too. (with CPU usage 100%, are you too getting this?)

It could be a downstream issue. (marble related? is marble running as an standalone app?)
Thanks
Comment 3 Frédéric COIFFIER 2009-07-18 21:17:56 UTC
I can launch the standalone application Marble and it works fine.

'plasmoidviewer worldclock' works too.

But, I can't still add the plasmoid to the desktop (with Add button or drag and drop) : plasma-desktop process takes 100% and freezes.
Comment 4 Dario Andres 2009-07-18 21:40:15 UTC
*** Bug 197237 has been marked as a duplicate of this bug. ***
Comment 5 Dario Andres 2009-07-18 21:40:22 UTC
*** Bug 193495 has been marked as a duplicate of this bug. ***
Comment 6 Dario Andres 2009-07-18 21:42:23 UTC
Once plasma is freeze, can you test the following ? :

You may need to recompile kdebase-workspace and kdeedu/marble with debug symbols

- Open Konsole
- Type "pidof plasma-destop" + Return (you will get a number "PID")
- Type "gdb --pid PID" + Return (where PID is the number you got before)
Wait until GDB loads
- In GDB prompt type "bt full" + press Return a couple of times.
You will get a backtrace which you should paste here later.

Thanks
Comment 7 Frédéric COIFFIER 2009-07-19 11:34:13 UTC
The bug seems to be really tricky (linked to Qt and font management) :

(gdb) bt full                                                                                                                     
#0  FcStrCaseWalkerNext (w=0xbfd1b580) at fcstr.c:167                                                                             
        r = 117 'u'                                                                                                               
#1  0x41e7bc86 in IA__FcStrCmpIgnoreCase (s1=0x9de3078 "Luxi Sans", s2=0x9de21b0 "Liberation Mono") at fcstr.c:224                
        w1 = {read = 0x0, src = 0x9de307a "xi Sans", utf8 = "��\215\000`l�"}                                                      
        w2 = {read = 0x0, src = 0x9de21b1 "iberation Mono", utf8 = "8O�\t\000\000"}                                               
        c1 = 108 'l'                                                                                                              
        c2 = <value optimized out>                                                                                                
#2  0x41e671cb in FcConfigCompareValue (left_o=0xaae7475c, op=FcOpEqual, right_o=0xbfd1b654) at fccfg.c:754                       
        left = {type = FcTypeString, u = {s = 0x9de3078 "Luxi Sans", i = 165556344, b = 165556344, d = 3009964110.9434166,        
    m = 0x9de3078, c = 0x9de3078, f = 0x9de3078, l = 0x9de3078}}                                                                  
        right = {type = FcTypeString, u = {s = 0x9de21b0 "Liberation Mono", i = 165552560, b = 165552560,                         
    d = 3010926670.9416122, m = 0x9de21b0, c = 0x9de21b0, f = 0x9de21b0, l = 0x9de21b0}}                                          
        ret = <value optimized out>                                                                                               
#3  0x41e68141 in IA__FcConfigSubstituteWithPat (config=0x9dc2000, p=0xaae74668, p_pat=0x0, kind=FcMatchPattern) at fccfg.c:1160  
        s = (FcSubst *) 0x9de3178                                                                                                 
        i = <value optimized out>                                                                                                 
        t = (FcTest *) 0x9de3158                                                                                                  
        e = (FcEdit *) 0x0                                                                                                        
        l = (FcValueList *) 0xaae75c30                                                                                            
        m = (FcPattern *) 0xaae74668                                                                                              
#4  0x41e68747 in IA__FcConfigSubstitute (config=0x0, p=0xaae74668, kind=FcMatchPattern) at fccfg.c:1584                          
No locals.                                                                                                                        
#5  0x42dacd93 in tryPatternLoad (p=<value optimized out>, screen=<value optimized out>, request=<value optimized out>, script=Could not find the frame base for "tryPatternLoad".                                                                                  
)                                                                                                                                 
    at text/qfontdatabase_x11.cpp:1593                                                                                            
        pattern = <value optimized out>                                                                                           
        res = Could not find the frame base for "tryPatternLoad".                                                                 
Current language:  auto; currently c                                                                                              


Same thing, some seconds after :


(gdb) bt full
#0  FcCompareValueList (object=1, v1orig=0xaab15838, v2orig=0xb7d29468, bestValue=0x0, value=0xbfd1b5d8, result=0xbfd1b6e8) at fcmatch.c:325
        v1 = (FcValueListPtr) 0xaab19480
        v2 = (FcValueListPtr) 0xb7d29468
        v = -16777218
        best = 1001
        bestStrong = 1001
        bestWeak = 1004
        j = 268
        match = (FcMatcher *) 0x41e8ea00
#1  0x41e75e31 in FcCompare (pat=0xaab15d00, fnt=0xb7d293c0, value=0xbfd1b5d8, result=0xbfd1b6e8) at fcmatch.c:404
        elt_i1 = (FcPatternElt *) 0x46
        elt_i2 = <value optimized out>
        i = <value optimized out>
        i1 = 0
        i2 = 0
#2  0x41e76690 in FcFontSetMatchInternal (config=<value optimized out>, sets=0xbfd1b68c, nsets=1, p=0xaab15d00, result=0xbfd1b6e8) at fcmatch.c:496
        score = {0 <repeats 16 times>}
        bestscore = {0, 0, 1, 1001, 8, 0, 867001, 0, 1, 1, 1, 1, 1001, 0, 1001, 2147483647001}
        f = 500
        s = (FcFontSet *) 0x9dd5018
        best = (FcPattern *) 0xb7dd01a8
        i = <value optimized out>
        set = 0
#3  0x41e76b29 in IA__FcFontMatch (config=0x9dc2000, p=0xaab15d00, result=0xbfd1b6e8) at fcmatch.c:580
        sets = {0x9dd5018, 0x1}
        nsets = <value optimized out>
        best = <value optimized out>
#4  0x42dacdbb in tryPatternLoad (p=<value optimized out>, screen=<value optimized out>, request=<value optimized out>, script=Could not find the frame base for "tryPatternLoad".
)
    at text/qfontdatabase_x11.cpp:1596
        pattern = <value optimized out>
        res = Could not find the frame base for "tryPatternLoad".
Current language:  auto; currently c
Comment 8 Serge Koksharov 2009-07-19 11:34:20 UTC
Created attachment 35454 [details]
Output of command
Comment 9 Serge Koksharov 2009-07-19 11:35:38 UTC
Yes I still have this problem. See my attached output of `plasmoidviewer worldclock'. And this window appears when I run it: http://img268.imageshack.us/img268/5337/worldclock.jpg
Comment 10 Anne-Marie Mahfouf 2009-07-19 11:43:52 UTC
Created attachment 35456 [details]
plasmoidviewer worlclock: the image is not painted

Always include screenshot in the bug report instead of linking to a website which might expire.
Comment 11 Frédéric COIFFIER 2009-07-19 12:23:25 UTC
So, it seems that the problem of Serge Koksharov is different of mine, as plasmoidviewer works in my case (but, I thing he doesn't use excatly the same version : some messages of the output are different).
More over, the output of the command stops when requesting 'style reset' :

Starting to load Plugins.                                                  
=== MarbleDirs: ===                                                                              
Local Path: "/home/fcoiffie/.marble/data"                                                        
Plugin Local Path: "/home/fcoiffie/.marble/plugins"                                              
                                                                                                 
Marble Data Path (Run Time) : ""                                                                 
Marble Data Path (Compile Time): "/usr/share/apps/marble/data"                                   
                                                                                                 
Marble Plugin Path (Run Time) : ""                                                               
Marble Plugin Path (Compile Time): "/usr/lib/kde4/plugins/marble"                                
                                                                                                 
System Path: "/usr/share/apps/marble/data"                                                       
Plugin System Path: "/usr/lib/kde4/plugins/marble"                                               
===================                                                                              
render plugin found "/usr/lib/kde4/plugins/marble/CompassFloatItem.so"                           
render plugin found "/usr/lib/kde4/plugins/marble/CrosshairsPlugin.so"                           
render plugin found "/usr/lib/kde4/plugins/marble/FileViewFloatItem.so"                          
render plugin found "/usr/lib/kde4/plugins/marble/GeoRendererPlugin.so"                          
render plugin found "/usr/lib/kde4/plugins/marble/GraticulePlugin.so"                            
render plugin found "/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so"                          
render plugin found "/usr/lib/kde4/plugins/marble/NavigationFloatItem.so"                        
render plugin found "/usr/lib/kde4/plugins/marble/OverviewMap.so"                                
render plugin found "/usr/lib/kde4/plugins/marble/Photo.so"                                      
network plugin found "/usr/lib/kde4/plugins/marble/QNamNetworkPlugin.so"                         
render plugin found "/usr/lib/kde4/plugins/marble/StarsPlugin.so"                                
render plugin found "/usr/lib/kde4/plugins/marble/Wikipedia.so"                                  
Time elapsed: 73 ms                                                                              
PhotoPlugin: Initialize                                                                          
Object::connect: No such signal Marble::PlacemarkManager::geoDataDocumentLoaded( GeoDataDocument& )
Object::connect: No such signal Marble::PlacemarkManager::geoDataDocumentAdded( GeoDataDocument* ) 
Use workaround:  0                                                                                 
Starting to load Plugins.                                                                          
=== MarbleDirs: ===                                                                                
Local Path: "/home/fcoiffie/.marble/data"                                                          
Plugin Local Path: "/home/fcoiffie/.marble/plugins"                                                
                                                                                                   
Marble Data Path (Run Time) : ""                                                                   
Marble Data Path (Compile Time): "/usr/share/apps/marble/data"                                     
                                                                                                   
Marble Plugin Path (Run Time) : ""                                                                 
Marble Plugin Path (Compile Time): "/usr/lib/kde4/plugins/marble"                                  
                                                                                                   
System Path: "/usr/share/apps/marble/data"                                                         
Plugin System Path: "/usr/lib/kde4/plugins/marble"                                                 
===================                                                                                
render plugin found "/usr/lib/kde4/plugins/marble/CompassFloatItem.so"                             
render plugin found "/usr/lib/kde4/plugins/marble/CrosshairsPlugin.so"                             
render plugin found "/usr/lib/kde4/plugins/marble/FileViewFloatItem.so"                            
render plugin found "/usr/lib/kde4/plugins/marble/GeoRendererPlugin.so"                            
render plugin found "/usr/lib/kde4/plugins/marble/GraticulePlugin.so"                              
render plugin found "/usr/lib/kde4/plugins/marble/MapScaleFloatItem.so"                            
render plugin found "/usr/lib/kde4/plugins/marble/NavigationFloatItem.so"                          
render plugin found "/usr/lib/kde4/plugins/marble/OverviewMap.so"                                  
render plugin found "/usr/lib/kde4/plugins/marble/Photo.so"                                        
network plugin found "/usr/lib/kde4/plugins/marble/QNamNetworkPlugin.so"                           
render plugin found "/usr/lib/kde4/plugins/marble/StarsPlugin.so"                                  
render plugin found "/usr/lib/kde4/plugins/marble/Wikipedia.so"                                    
Time elapsed: 99 ms                                                                                
Model: Time elapsed: 297 ms                                                                        
kiloBytes 8192                                                                                     
"Setting tile cache to 8192 kilobytes."                                                            
loadMapTheme "earth/bluemarble/bluemarble.dgml"                                                    
DGML2 Name       :  "Satellite View"                                                               
adding container: "cityplacemarks" false                                                           
starting parser for "cityplacemarks"                                                               
"Loading Default Placemark Cache File:/usr/kde/3.5/share/apps/marble/data/placemarks/cityplacemarks.cache" 
adding container: "baseplacemarks" false                                                                   
adding container: "elevplacemarks" false                                                                   
starting parser for "baseplacemarks"                                                                       
starting parser for "elevplacemarks"                                                                       
adding container: "observatoryplacemarks" false                                                            
"Loading Default Placemark Cache File:/usr/kde/3.5/share/apps/marble/data/placemarks/baseplacemarks.cache" 
"Loading Default Placemark Cache File:/usr/kde/3.5/share/apps/marble/data/placemarks/elevplacemarks.cache" 
adding container: "otherplacemarks" false                                                                  
newGeoDataDocumentAdded "baseplacemarks"                                                                   
newGeoDataDocumentAdded "elevplacemarks"                                                                   
Loading ended true                                                                                         
placemarksLoaded                                                                                           
Loading ended true                                                                                         
placemarksLoaded                                                                                           
starting parser for "observatoryplacemarks"                                                                
No recent Default Placemark Cache File available for  "observatoryplacemarks"                              
No Default Placemark Source File for  "observatoryplacemarks"                                              
starting parser for "otherplacemarks"                                                                      
"Loading Default Placemark Cache File:/usr/kde/3.5/share/apps/marble/data/placemarks/otherplacemarks.cache" 
newGeoDataDocumentAdded "otherplacemarks"                                                                   
Loading ended true                                                                                          
placemarksLoaded                                                                                            
adding container: "boundaryplacemarks" true                                                                 
starting parser for "boundaryplacemarks"                                                                    
"Loading Default Placemark Cache File:/usr/kde/3.5/share/apps/marble/data/placemarks/boundaryplacemarks.cache" 
THEME CHANGED: *** "earth/bluemarble/bluemarble.dgml"                                                          
newGeoDataDocumentAdded "boundaryplacemarks"                                                                   
Loading ended true                                                                                             
placemarksLoaded                                                                                               
In MarbleMap the property  "compass" was set to  false                                                         
GeoSceneSettings: Property  "compass" to false                                                                 
In MarbleMap the property  "scalebar" was set to  false
GeoSceneSettings: Property  "scalebar" to false
In MarbleMap the property  "coordinate-grid" was set to  false
GeoSceneSettings: Property  "coordinate-grid" to false
In MarbleMap the property  "places" was set to  false
GeoSceneSettings: Property  "places" to false
In MarbleMap the property  "cities" was set to  false
GeoSceneSettings: Property  "cities" to false
In MarbleMap the property  "otherplaces" was set to  false
GeoSceneSettings: Property  "otherplaces" to false
GeoSceneSettings: Property  "overviewmap" to false
void SunLocator::setShow( bool )
MarbleMap: Updating the sun shading map...
MarbleModel::update()
void SunLocator::update()
MarbleMap: Updating the sun shading map...
MarbleModel::update()
MarbleMap: Updating the sun shading map...
MarbleModel::update()
void SunLocator::update()
MarbleMap: Updating the sun shading map...
MarbleModel::update()
MarbleMap: Updating the sun shading map...
MarbleModel::update()
Containername: "baseplacemarks.kml" to be finalized: false 6
Containername: "elevplacemarks.kml" to be finalized: false 5
Containername: "otherplacemarks.kml" to be finalized: false 3
Containername: "boundaryplacemarks" to be finalized: false 2
newGeoDataDocumentAdded "cityplacemarks"
Loading ended true
placemarksLoaded
TileLoader::update()
TileLoader::update()
TileLoader::update()
TileLoader::update()
TileLoader::update()
Containername: "cityplacemarks.kml" to be finalized: true 1
Style reset requested.
Comment 12 Serge Koksharov 2009-07-19 16:55:43 UTC
Created attachment 35459 [details]
WorldClock backtrace
Comment 13 Serge Koksharov 2009-07-19 16:56:35 UTC
I recompiled plasma-workspace & marble with debugging symbols enabled (added -ggdb to CFLAGS and changed optimisation flag from -O2 to -O1). On Gentoo system process which deadlocks called `plasma', not `plasma-desktop`. Please see attached backtrace.
Comment 14 Anne-Marie Mahfouf 2009-07-19 17:07:44 UTC
Pasting directly relevant bits

#14 0x00007f9dc9cbee09 in Marble::WorldClock::recalculateFonts (this=0x1292140)
    at /var/tmp/portage/kde-base/marble-4.2.4/work/marble-4.2.4/marble/src/plasmoid/worldclock.cpp:302
	font = {static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7f9de5d9b020 "QFont", 
      data = 0x7f9de5d9b0e0, extradata = 0x0}}, d = 0x41a64a0, resolve_mask = 51}
	metrics = {d = 0x41a64a0}
	rect = {x1 = 1, y1 = -28, x2 = 80, y2 = 7}
	timestr = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 118796}, alloc = 0, 
    size = 0, data = 0x7f9de69517fa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 194}, alloc = 0, size = 0, 
---Type <return> to continue, or q <return> to quit---
    data = 0x7f9de695181a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, d = 0x2685680, static codecForCStrings = 0x0}
	locstr = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 118796}, alloc = 0, 
    size = 0, data = 0x7f9de69517fa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 194}, alloc = 0, size = 0, 
    data = 0x7f9de695181a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, d = 0x2685620, static codecForCStrings = 0x0}
	timeRect = {x1 = 117, y1 = 44, x2 = 235, y2 = 103}
	locationRect = {x1 = 117, y1 = 103, x2 = 235, y2 = 132}
	lastSize = 2539
#15 0x00007f9dc9cc0b1f in Marble::WorldClock::paintInterface (this=0x1292140, p=0x7ffff0fbd6b0, 
    option=<value optimized out>, contentsRect=@0x7ffff0fbd470)
    at /var/tmp/portage/kde-base/marble-4.2.4/work/marble-4.2.4/marble/src/plasmoid/worldclock.cpp:329
	pixmap = <incomplete type>
	gp = {<Marble::ClipPainter> = {<QPainter> = {static staticMetaObject = {d = {superdata = 0x0, 
          stringdata = 0x7f9de5d9ae20 "QPainter", data = 0x7f9de5d9aec0, extradata = 0x0}}, 
      d_ptr = 0x4079000000000000}, d = 0x7f9de38cfa00}, d = 0x286e990}
	mapRect = {x1 = 19227592, y1 = 0, x2 = 200, y2 = 0}
	tzx = <value optimized out>
	tzy = <value optimized out>
	ok = <value optimized out>
	locstr = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 118796}, alloc = 0, 
    size = 0, data = 0x7f9de69517fa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 194}, alloc = 0, size = 0, 
    data = 0x7f9de695181a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, d = 0x405dc00000000000, static codecForCStrings = 0x0}
	timestr = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 118796}, alloc = 0, 
    size = 0, data = 0x7f9de69517fa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 194}, alloc = 0, size = 0, 
    data = 0x7f9de695181a, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, d = 0x0, static codecForCStrings = 0x0}
#16 0x00007f9de87ee9c3 in Plasma::Applet::paint () from /usr/lib64/libplasma.so.3
Comment 15 mansona 2009-07-19 17:20:55 UTC
test! Ignore this comment.
Comment 16 Dario Andres 2009-07-19 22:26:31 UTC
There is a similar backtrace where they deduced the freeze cause: bug 189633.
Can you check it and try to check your fonts installation ? Hopefully, if you uninstall you bitmap-version of the Helvetica font the freeze will stop happening. (It could be unrelated too. )
Also, coould you recheck using plasmoidviewer but maximizing the window? (it seems the problem is related to the size of the widget)
Thanks
Comment 17 Serge Koksharov 2009-07-20 16:04:22 UTC
Yes, after I disabled `Helvetica' font in KDE Font Installer `WorldClock' plasmoid started working. In `plasmoidviewer' window maximizes correctly without this font and not painted at all if font is present.
Comment 18 Frédéric COIFFIER 2009-07-20 16:53:10 UTC
After uninstalling bitmap fonts (75 and 100 DPI fonts), the 'wolrd clock' works too.
But a workaround to be able to keep these fonts, could be useful.
Comment 19 mansona 2009-07-20 18:17:20 UTC
test! please ignore this comment
Comment 20 Dario Andres 2009-07-21 16:08:04 UTC
So, as it was confirmed that this is caused by the same problem described on bug 189633. I'm merging them. Thanks

*** This bug has been marked as a duplicate of bug 189633 ***