Discussion:
Bug#915390: clazy: Segmentation fault compiling any file
Alberto Luaces
2018-12-03 12:47:56 UTC
Permalink
Package: clazy
Version: 1.4-3
Severity: grave
Justification: renders package unusable

Dear Maintainer,

attempting to compile any file on my system results in a segfault.
Could it be that a runtime dependency is missing from d/control?
touch a.cpp
clazy a.cpp
#0 0x00007f825a95352a llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1+0x92152a)
#1 0x00007f825a95164e llvm::sys::RunSignalHandlers() (/usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1+0x91f64e)
#2 0x00007f825a9517dd (/usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1+0x91f7dd)
#3 0x00007f825dc2b8e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x128e0)
#4 0x00007f8254bc6ac4 (/usr/lib/x86_64-linux-gnu/libLLVM-7.so.1+0x106dac4)
#5 0x00007f82543e9c78 llvm::WebAssemblyTargetWasmStreamer::emitGlobalImport(llvm::StringRef) (/usr/lib/x86_64-linux-gnu/libLLVM-7.so.1+0x890c78)
#6 0x00007f825dca90ca (/lib64/ld-linux-x86-64.so.2+0xf0ca)
#7 0x00007f825dca91d6 (/lib64/ld-linux-x86-64.so.2+0xf1d6)
#8 0x00007f825dcad253 (/lib64/ld-linux-x86-64.so.2+0x13253)
#9 0x00007f8259a41adf _dl_catch_exception (/lib/x86_64-linux-gnu/libc.so.6+0x133adf)
#10 0x00007f825dcacb1a (/lib64/ld-linux-x86-64.so.2+0x12b1a)
#11 0x00007f82594a0276 __asprintf (/lib/x86_64-linux-gnu/libdl.so.2+0x1276)
#12 0x00007f8259a41adf _dl_catch_exception (/lib/x86_64-linux-gnu/libc.so.6+0x133adf)
#13 0x00007f8259a41b6f _dl_catch_error (/lib/x86_64-linux-gnu/libc.so.6+0x133b6f)
#14 0x00007f82594a0975 (/lib/x86_64-linux-gnu/libdl.so.2+0x1975)
#15 0x00007f82594a0331 dlopen (/lib/x86_64-linux-gnu/libdl.so.2+0x1331)
#16 0x00007f825a93dc53 llvm::sys::DynamicLibrary::HandleSet::DLOpen(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) (/usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1+0x90bc53)
#17 0x00007f825a93def2 llvm::sys::DynamicLibrary::getPermanentLibrary(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*) (/usr/lib/x86_64-linux-gnu/libLLVM-6.0.so.1+0x90bef2)
#18 0x000055d0d6d7daba clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/lib/llvm-6.0/bin/clang+0x8e9aba)
#19 0x000055d0d68d8678 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/lib/llvm-6.0/bin/clang+0x444678)
#20 0x000055d0d68c8117 main (/usr/lib/llvm-6.0/bin/clang+0x434117)
#21 0x00007f8259930b17 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x22b17)
#22 0x000055d0d68d665a _start (/usr/lib/llvm-6.0/bin/clang+0x44265a)
Stack dump:
0. Program arguments: /usr/lib/llvm-6.0/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name a.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -resource-dir /usr/lib/llvm-6.0/lib/clang/6.0.1 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/x86_64-linux-gnu/c++/8 -internal-isystem /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/backward -internal-isystem /usr/include/clang/6.0.1/include/ -internal-isystem /usr/local/include -internal-isystem /usr/lib/llvm-6.0/lib/clang/6.0.1/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/alberto/tmp/biolim/build_clazy -ferror-limit 19 -fmessage-length 190 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -load ClangLazy.so -add-plugin clang-lazy -o /tmp/a-239fc9.o -x c++ a.cpp
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 6.0.1-9.2 (tags/RELEASE_601/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
clang: error: unable to execute command: Bus error
clang: note: diagnostic msg: Error generating preprocessed source(s).

-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.18.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=es_ES.UTF-8, LC_CTYPE=es_ES.UTF-8 (charmap=UTF-8), LANGUAGE= (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages clazy depends on:
ii libc6 2.27-8
ii libgcc1 1:8.2.0-9
ii libllvm7 1:7-6
ii libstdc++6 8.2.0-9

clazy recommends no packages.

clazy suggests no packages.

-- no debconf information
Lisandro Damián Nicanor Pérez Meyer
2018-12-03 21:55:27 UTC
Permalink
Hi Alberto!
Post by Alberto Luaces
Package: clazy
Version: 1.4-3
Severity: grave
Justification: renders package unusable
Dear Maintainer,
attempting to compile any file on my system results in a segfault.
Could it be that a runtime dependency is missing from d/control?
Clazy calls clang, so maybe that's what's missing. I can't tell you right
now which package it is, but should be easy to find.
Alberto Luaces Fernández
2018-12-04 11:27:35 UTC
Permalink
Post by Lisandro Damián Nicanor Pérez Meyer
Hi Alberto!
Package: clazy
Version: 1.4-3
Severity: grave
Justification: renders package unusable
Dear Maintainer,
attempting to compile any file on my system results in a segfault.
Could it be that a runtime dependency is missing from d/control?
Clazy calls clang, so maybe that's what's missing. I can't tell you
right now which package it is, but should be easy to find.
I had clang (and thus clang-6.0) installed. I tried again by installing
clang-7, but with similar results.

In fact, the clazy script makes this call, as shown in the original report:

/usr/lib/llvm-6.0/bin/clang -cc1 -triple x86_64-pc-linux-gnu -emit-obj ...

so it seems it is using clang-6. However,
Post by Lisandro Damián Nicanor Pérez Meyer
ldd /usr/lib/x86_64-linux-gnu/ClangLazy.so
linux-vdso.so.1 (0x00007fff6b6da000)
libLLVM-7.so.1 => /usr/lib/x86_64-linux-gnu/libLLVM-7.so.1 ...

so the plugin is built against LLVM 7.

Chaging the script to call clang-7 instead results in no errors, so it
should be a matter of adjusting it and requiring clang-7 in d/control as
a
Lisandro Damián Nicanor Pérez Meyer
2018-12-06 20:02:22 UTC
Permalink
For what I could see in the source the solution is to either set CLANGXX
(maybe check if it is not defined and then define it?) or modifying the script
in another way.

At least in unstable this is not a problem right now as the default LLVM is
now 7, but a more robust solution could help.
--
Antiguo proverbio de El Machi: "Dado el apropiado grado de profundidad, la
ineptitud es indistinguible del sabotaje"

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/
Lisandro Damián Nicanor Pérez Meyer
2018-12-06 20:19:29 UTC
Permalink
El jueves, 6 de diciembre de 2018 17:02:22 -03 Lisandro Damián Nicanor Pérez
Post by Lisandro Damián Nicanor Pérez Meyer
For what I could see in the source the solution is to either set CLANGXX
(maybe check if it is not defined and then define it?) or modifying the
script in another way.
At least in unstable this is not a problem right now as the default LLVM is
now 7, but a more robust solution could help.
Even if I solve the call to the right compiler we would still need to solve
the dependency. Pino: maybe harcoding the clan version like we do in qtt
creator?
--
"Los promotores del software privativo demonizan algo tan básico y ético como
el hecho de compartir imponiendo términos como el de 'pirata'. Equiparan
ayudar al prójimo con atacar barcos. Cuando me preguntan qué pienso de la
piratería musical e informática digo que atacar barcos es muy malo y,
que yo sepa, los piratas no usan computadoras.”
Richard Stallman, 05/11/2008, anexo de la Cámara de Diputados, Argentina

Lisandro Damián Nicanor Pérez Meyer
http://perezmeyer.com.ar/
http://perezmeyer.blogspot.com/
Loading...