Bug 239831 - [Patch] Crash at startup around RenderPlugin::setDataFacade
Summary: [Patch] Crash at startup around RenderPlugin::setDataFacade
Status: RESOLVED FIXED
Alias: None
Product: marble
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: marble-bugs
URL:
Keywords:
: 239978 240115 240846 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-05-28 08:00 UTC by Dennis Nienhüser
Modified: 2010-08-26 14:57 UTC (History)
5 users (show)

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 Dennis Nienhüser 2010-05-28 08:00:00 UTC
Version:           unspecified (using Devel) 
OS:                Linux

(Copied from my blog: http://nienhueser.de/blog/?p=132#comments)

Application: Globo de escritorio Marble (marble), signal: Segmentation fault
82 T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
[Current thread is 1 (Thread 0x7f9fa8c0c860 (LWP 27983))]

Thread 2 (Thread 0×7f9f9dc45710 (LWP 27986)):
#0 0×0000003ae7cd7e13 in __poll (fds=, nfds=, timeout=) at ../sysdeps/unix/sysv/linux/poll.c:87
#1 0×0000003ae983f849 in g_main_context_poll (context=0×1b2aa20, block=1, dispatch=1, self=) at gmain.c:2904
#2 g_main_context_iterate (context=0×1b2aa20, block=1, dispatch=1, self=) at gmain.c:2586
#3 0×0000003ae983fc9c in IA__g_main_context_iteration (context=0×1b2aa20, may_block=1) at gmain.c:2654
#4 0×0000003cc337fa76 in QEventDispatcherGlib::processEvents (this=0×1b25450, flags=) at kernel/qeventdispatcher_glib.cpp:414
#5 0×0000003cc3356cf2 in QEventLoop::processEvents (this=, flags=…) at kernel/qeventloop.cpp:149
#6 0×0000003cc3356fbc in QEventLoop::exec (this=0×7f9f9dc44cb0, flags=…) at kernel/qeventloop.cpp:201
#7 0×0000003cc326fe3b in QThread::exec (this=) at thread/qthread.cpp:495
#8 0×0000003cc33394a8 in QInotifyFileSystemWatcherEngine::run (this=0×1b20e00) at io/qfilesystemwatcher_inotify.cpp:248
#9 0×0000003cc3272afe in QThreadPrivate::start (arg=0×1b20e00) at thread/qthread_unix.cpp:266
#10 0×0000003ae8807761 in start_thread (arg=0×7f9f9dc45710) at pthread_create.c:301
#11 0×0000003ae7ce150d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0×7f9fa8c0c860 (LWP 27983)):
[KCrash Handler]
#6 0×00007f9fa8dd80f4 in Marble::RenderPlugin::setDataFacade (this=0×1c095e0, dataFacade=0×1b1e340) at /usr/src/debug/kdeedu-4.4.80/marble/src/lib/RenderPlugin.cpp:76
#7 0×00007f9fa8d769c7 in Marble::LayerManager::LayerManager (this=0×1b395e0, dataFacade=, pluginManager=, parent=)
at /usr/src/debug/kdeedu-4.4.80/marble/src/lib/LayerManager.cpp:85
#8 0×00007f9fa8d2c24c in Marble::MarbleModel::MarbleModel (this=0×1b206d0, parent=) at /usr/src/debug/kdeedu-4.4.80/marble/src/lib/MarbleModel.cpp:219
#9 0×00007f9fa8d349f0 in Marble::MarbleMap::MarbleMap (this=0×1b1e270) at /usr/src/debug/kdeedu-4.4.80/marble/src/lib/MarbleMap.cpp:356
#10 0×00007f9fa8d26307 in Marble::MarbleWidget::MarbleWidget (this=0×1afaed0, parent=) at /usr/src/debug/kdeedu-4.4.80/marble/src/lib/MarbleWidget.cpp:143
#11 0×00000000004106d5 in Marble::ControlView::ControlView (this=0×17cb7f0, parent=) at /usr/src/debug/kdeedu-4.4.80/marble/src/ControlView.cpp:45
#12 0×000000000041bf92 in Marble::MarblePart::MarblePart (this=0×18d8760, parentWidget=0×17819d0, parent=0×17819d0, arguments=, __in_chrg=,
__vtt_parm=) at /usr/src/debug/kdeedu-4.4.80/marble/src/marble_part.cpp:121
#13 0×0000000000416e5b in Marble::MainWindow::MainWindow (this=0×17819d0, marbleDataPath=, parent=, __in_chrg=,
__vtt_parm=) at /usr/src/debug/kdeedu-4.4.80/marble/src/KdeMainWindow.cpp:41
#14 0×0000000000416507 in main (argc=1, argv=0×7ffff3a8cf18) at /usr/src/debug/kdeedu-4.4.80/marble/src/kdemain.cpp:249

Reproducible: Always
Comment 1 Dennis Nienhüser 2010-05-30 08:45:16 UTC
*** Bug 239978 has been marked as a duplicate of this bug. ***
Comment 2 Dennis Nienhüser 2010-05-30 19:54:11 UTC
Can you post a list of Marble plugins installed? They are in /usr/lib/kde4/plugins/marble or a similar location (depends on where KDE is installed on Fedora)
Comment 3 Mark van Rossum 2010-05-30 20:19:56 UTC
ls -l /usr/lib/kde4/plugins/marble 
total 748                                                                    
-rwxr-xr-x  1 root root 175452 May 25 12:28 AprsPlugin.so                    
-rwxr-xr-x  1 root root  18684 May 25 12:28 CompassFloatItem.so              
-rwxr-xr-x  1 root root  12996 May 25 12:28 CrosshairsPlugin.so              
-rwxr-xr-x. 1 root root  10784 Mar 30 20:21 ExternalDraw.so                  
-rwxr-xr-x  1 root root  31452 May 25 12:28 GeoRendererPlugin.so             
-rwxr-xr-x  1 root root  22992 May 25 12:28 GpsdPositionProviderPlugin.so    
-rwxr-xr-x  1 root root  32608 May 25 12:28 GraticulePlugin.so               
-rwxr-xr-x  1 root root  19092 May 25 12:28 MapScaleFloatItem.so             
-rwxr-xr-x  1 root root  48248 May 25 12:28 NavigationFloatItem.so           
-rwxr-xr-x  1 root root  23036 May 25 12:28 OverviewMap.so                   
-rwxr-xr-x  1 root root  48780 May 25 12:28 Photo.so                         
-rwxr-xr-x  1 root root  21064 May 25 12:28 ProgressFloatItem.so             
-rwxr-xr-x  1 root root  18776 May 25 12:28 QNamNetworkPlugin.so             
-rwxr-xr-x  1 root root  22892 May 25 12:28 StarsPlugin.so                   
-rwxr-xr-x  1 root root 180600 May 25 12:28 Weather.so                       
-rwxr-xr-x  1 root root  52056 May 25 12:28 Wikipedia.so
Comment 4 Dennis Nienhüser 2010-05-30 20:52:31 UTC
Thanks for the fast reply. Can you move plugins to a different location (e.g. /root/marble-backup/) and start Marble afterwards to see if that "fixes" it? Preferably in this order:

1) ExternalDraw.so (installed by Digikam and older, might be incompatible)
2) AprsPlugin.so (new in Marble)
3) ProgressFloatItem.so (new in Marble)
4) GpsdPositionProviderPlugin.so (depends on libgps-dev)
5) all plugins

At latest in 5) Marble should start without a crash or return a different backtrace.
Comment 5 Mark van Rossum 2010-05-30 21:02:39 UTC
Without  ExternalDraw.so
marble starts up fine, but digikam complains:


 /usr/lib/libdigikamcore.so.1: undefined symbol: _ZN6Marble12MarbleWidget8zoomViewEi

and won't start
Comment 6 Mark van Rossum 2010-05-30 21:18:18 UTC
I guess the cause is clear now:
The kde-unstable shoudl contain new versions of digikam as well to prevent this conflict.
Comment 7 Rex Dieter 2010-05-30 22:12:58 UTC
*** Bug 240110 has been marked as a duplicate of this bug. ***
Comment 8 Rex Dieter 2010-05-30 22:16:41 UTC
looks like libmarble ABI changed, either restore the now-missing symbols or bump the soname of libmarblewidget
Comment 9 Dennis Nienhüser 2010-05-31 17:25:56 UTC
*** Bug 240115 has been marked as a duplicate of this bug. ***
Comment 10 Dennis Nienhüser 2010-06-02 20:00:16 UTC
SVN commit 1133876 by nienhueser:

Bump the soversion of libmarblewidget from 4 to 10 to reflect that we do not provide binary compatibility in the KDE 4 life-span (before Marble 1.0). The soversions are now equal for the Qt and the KDE version of the lib.
CCBUG: 239831


 M  +0 -2      CMakeLists.txt  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1133876
Comment 11 Dennis Nienhüser 2010-06-08 18:07:11 UTC
*** Bug 240846 has been marked as a duplicate of this bug. ***
Comment 12 Dennis Nienhüser 2010-08-26 01:21:37 UTC
This patch [1] hopefully fixes the root of the problem.

[1] http://reviewboard.kde.org/r/5149/
Comment 13 Dennis Nienhüser 2010-08-26 14:16:39 UTC
SVN commit 1168304 by nienhueser:

Stricter plugin load checks: Refuse to load plugins with older interface versions. Fixes incompatible/old plugins crashing Marble.
CCBUG: 239831
RB: 5149

 M  +0 -1      lib/AbstractDataPlugin.h  
 M  +30 -29    lib/PluginManager.cpp  
 M  +0 -1      lib/RenderPlugin.h  
 M  +2 -2      lib/RunnerPlugin.h  
 M  +1 -0      plugins/network/qnam/QNamNetworkPlugin.h  
 M  +1 -0      plugins/positionprovider/geoclue/GeoCluePositionProviderPlugin.h  
 M  +1 -0      plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.h  
 M  +1 -0      plugins/positionprovider/maemo/MaemoPositionProviderPlugin.h  
 M  +1 -0      plugins/render/fileview/FileViewFloatItem.h  
 M  +2 -1      plugins/render/navigation/NavigationFloatItem.h  
 M  +2 -0      plugins/runner/gosmore/GosmorePlugin.h  
 M  +1 -0      plugins/runner/hostip/HostipPlugin.h  
 M  +2 -0      plugins/runner/latlon/LatLonPlugin.h  
 M  +2 -0      plugins/runner/localdatabase/LocalDatabasePlugin.h  
 M  +1 -0      plugins/runner/namefinder/NameFinderPlugin.h  
 M  +2 -0      plugins/runner/nominatim/NominatimPlugin.h  
 M  +2 -0      plugins/runner/openrouteservice/OpenRouteServicePlugin.h  
 M  +2 -0      plugins/runner/routino/RoutinoPlugin.h  
 M  +2 -0      plugins/runner/traveling-salesman/TravelingSalesmanPlugin.h  
 M  +2 -0      plugins/runner/yours/YoursPlugin.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1168304
Comment 14 Dennis Nienhüser 2010-08-26 14:57:08 UTC
SVN commit 1168342 by nienhueser:

Stricter plugin load checks: Refuse to load plugins with older interface versions. Fixes incompatible/old plugins crashing Marble. Backport of commit 1168304.
BUG: 239831
RB: 5149


 M  +0 -1      lib/AbstractDataPlugin.h  
 M  +29 -22    lib/PluginManager.cpp  
 M  +0 -1      lib/RenderPlugin.h  
 M  +1 -0      plugins/network/qnam/QNamNetworkPlugin.h  
 M  +1 -0      plugins/positionprovider/geoclue/GeoCluePositionProviderPlugin.h  
 M  +1 -0      plugins/positionprovider/gpsd/GpsdPositionProviderPlugin.h  
 M  +1 -0      plugins/positionprovider/maemo/MaemoPositionProviderPlugin.h  
 M  +1 -0      plugins/render/fileview/FileViewFloatItem.h  
 M  +2 -1      plugins/render/navigation/NavigationFloatItem.h  


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