Bug 382334 - freak crash through libllvm mismatch
Summary: freak crash through libllvm mismatch
Status: RESOLVED DUPLICATE of bug 373614
Alias: None
Product: kdevelop
Classification: Applications
Component: Language Support: CPP (Clang-based) (show other bugs)
Version: git master
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: kdevelop-bugs-null
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-07-14 11:16 UTC by RJVB
Modified: 2017-07-14 14:14 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 RJVB 2017-07-14 11:16:08 UTC
Running KDevelop remotely from my Linux rig I'm seeing the crash below.
Looks like a nasty one where for some reason libLLVM 3.8 gets loaded for a reason outside of my control and then starts being used instead of the intended library version which is clearly already loaded.
This may have something to do with it:
```
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
```

at least I hope so since otherwise I am apparently lucky that the same issue doesn't bite me when I'm running locally...

What really strikes me is that the jump to libLLVM-3.8 happens in a function from libLLVM-4.0 .

It seems possible to work around this by replacing libLLVM-3.8.so.1 with a symlink to libLLVM-4.0.so.1 but a better solution would be preferable. The issue does ring a bell for me, has anyone ever looked into it? 

Program received signal SIGSEGV, Segmentation fault.                                                                                                          
0x00007f8511f79a42 in llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::OptionInfo, false>::grow(unsigned long) () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1                                                                                                  
(gdb) bt                                                                                                                                                      
#0  0x00007f8511f79a42 in llvm::SmallVectorTemplateBase<llvm::cl::parser<llvm::ScheduleDAGInstrs* (*)(llvm::MachineSchedContext*)>::OptionInfo, false>::grow(unsigned long) () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1                                                                                              
#1  0x00007f8511f79b3b in ?? () from /usr/lib/x86_64-linux-gnu/libLLVM-3.8.so.1                                                                               
#2  0x00007f84e9b60554 in llvm::MachinePassRegistry::Add(llvm::MachinePassRegistryNode*) () from /usr/lib/llvm-4.0/lib/../lib/libLLVM-4.0.so.1                
#3  0x00007f84e983a7e5 in ?? () from /usr/lib/llvm-4.0/lib/../lib/libLLVM-4.0.so.1                                                                            
#4  0x00007f854877a2da in call_init (l=<optimised out>, argc=argc@entry=2, argv=argv@entry=0x7ffd6807f358, env=env@entry=0x7ffd6807f370) at dl-init.c:78      
#5  0x00007f854877a3c3 in call_init (env=<optimised out>, argv=<optimised out>, argc=<optimised out>, l=<optimised out>) at dl-init.c:36                      
#6  _dl_init (main_map=main_map@entry=0x44e0a20, argc=2, argv=0x7ffd6807f358, env=0x7ffd6807f370) at dl-init.c:126                                            
#7  0x00007f854877ee00 in dl_open_worker (a=a@entry=0x7ffd6807df98) at dl-open.c:577                                                                          
#8  0x00007f854877a194 in _dl_catch_error (objname=objname@entry=0x7ffd6807df88, errstring=errstring@entry=0x7ffd6807df90,                                    
    mallocedp=mallocedp@entry=0x7ffd6807df80, operate=operate@entry=0x7f854877eb30 <dl_open_worker>, args=args@entry=0x7ffd6807df98) at dl-error.c:187        
#9  0x00007f854877e54b in _dl_open (file=0x454c6b8 "/opt/local/share/qt5/plugins/kdevplatform/27/kdevclangsupport.so", mode=-2147479551, 
    caller_dlopen=<optimised out>, nsid=-2, argc=2, argv=0x7ffd6807f358, env=0x7ffd6807f370) at dl-open.c:661
#10 0x00007f853670b02b in dlopen_doit (a=a@entry=0x7ffd6807e1b0) at dlopen.c:66
#11 0x00007f854877a194 in _dl_catch_error (objname=0x253d3d0, errstring=0x253d3d8, mallocedp=0x253d3c8, operate=0x7f853670afd0 <dlopen_doit>, 
    args=0x7ffd6807e1b0) at dl-error.c:187
#12 0x00007f853670b62d in _dlerror_run (operate=operate@entry=0x7f853670afd0 <dlopen_doit>, args=args@entry=0x7ffd6807e1b0) at dlerror.c:163
#13 0x00007f853670b0c1 in __dlopen (file=<optimised out>, mode=mode@entry=4097) at dlopen.c:87
#14 0x00007f8541cf1f0e in QLibraryPrivate::load_sys (this=0x454be60)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/plugin/qlibrary_unix.cpp:226
#15 0x00007f8541ceb3cd in load (this=0x454be60)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/plugin/qlibrary.cpp:538
#16 QLibraryPrivate::loadPlugin (this=0x454be60)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/plugin/qlibrary.cpp:591
#17 0x00007f8541cde9a6 in QPluginLoader::load (this=<optimised out>)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_aqua_qt5-kde-devel/qt5-kde-devel/work/qt-everywhere-opensource-src-5.8.0/qtbase/src/corelib/plugin/qpluginloader.cpp:239
#18 0x00007f85431a120a in KPluginLoader::load (this=0x7ffd6807e550)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_KF5-Frameworks/kf5-kcoreaddons/work/kcoreaddons-5.35.0/src/lib/plugin/kpluginloader.cpp:184
#19 0x00007f85431a131a in KPluginLoader::instance (this=<optimised out>)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_KF5-Frameworks/kf5-kcoreaddons/work/kcoreaddons-5.35.0/src/lib/plugin/kpluginloader.cpp:166
#20 0x00007f85431a1357 in KPluginLoader::factory (this=<optimised out>)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_KF5-Frameworks/kf5-kcoreaddons/work/kcoreaddons-5.35.0/src/lib/plugin/kpluginloader.cpp:111
#21 0x00007f85484602d8 in KDevelop::PluginController::loadPluginInternal (this=0x2b166c0, pluginId=...)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:544
#22 0x00007f85484646dd in operator() (info=..., this=<optimised out>)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:643
#23 foreachEnabledPlugin<(lambda at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:640:29)> (this=<optimised out>, func=..., extension=..., constraints=..., pluginName=...)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:220
#24 KDevelop::PluginController::pluginForExtension (this=<optimised out>, extension=..., pluginName=..., constraints=...)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/plugincontroller.cpp:640
#25 0x00007f854849c083 in KDevelop::DocumentControllerPrivate::openDocumentInternal (this=0x2ebf8c0, inputUrl=..., prefName=..., range=..., encoding=..., 
    activationParams=..., buddy=0x688a8)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/documentcontroller.cpp:300
#26 0x00007f8548496151 in KDevelop::DocumentController::openDocument (this=<optimised out>, inputUrl=..., range=..., activationParams=..., encoding=..., 
    buddy=0x0)
    at /opt/local/var/lnxports/build/_opt_local_site-ports_kf5_kdevplatform5/kf5-kdevplatform-devel/work/kf5-kdevplatform-5/shell/documentcontroller.cpp:693
#27 0x00007f8546c61e24 in KDevelop::IDocumentController::openDocument (this=0x0, url=..., cursor=..., activationParams=..., encoding=...)
Comment 1 Kevin Funk 2017-07-14 12:27:17 UTC
Your debug out suggests you're attempting to load 'swrast'.
  swrast is part of Mesa, and is linked against LLVM.

Looks like the same root cause as in bug 373614 (LLVM version used in swrast is different from LLVM version used in KDevelop => crash).

*** This bug has been marked as a duplicate of bug 373614 ***
Comment 2 RJVB 2017-07-14 14:14:18 UTC
I knew I had seen something like this before but saw nothing in the hits bugzilla presents when you type the ticket title. Thanks.