Actions
Bug #18681
closedcrashes when built with AddressSanitizer (clang build)
Bug #18681:
crashes when built with AddressSanitizer (clang build)
Description
Have the error-message in log then build ruby interpreter:
building .ext/include/x86_64-linux/rb_mjit_min_header-2.7.5.h
./miniruby -I./lib -I. -I.ext/common ./tool/transform_mjit_header.rb "/usr/bin/clang -fsanitize=address -O2 -g " rb_mjit_header.h .ext/include/x86_64-linux/rb_mjit_min_header-2.7.5.h
uncommon.mk:1069: recipe for target 'encdb.h' failed
make: *** [encdb.h] Segmentation fault
make: *** Waiting for unfinished jobs....
./tool/ifchange "--timestamp=.rbconfig.time" rbconfig.rb rbconfig.tmp
rbconfig.rb updated
=================================================================
==19657==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 1062075 byte(s) in 85 object(s) allocated from:
#0 0x65218f136978 in malloc (/run/media/sdc/ruby/ruby-2.7.5/miniruby+0x225978)
#1 0x65218f330633 in objspace_xmalloc0 /run/media/sdc/ruby/ruby-2.7.5/gc.c:9874:5
Direct leak of 16168 byte(s) in 4 object(s) allocated from:
#0 0x65218f136978 in malloc (/run/media/sdc/ruby/ruby-2.7.5/miniruby+0x225978)
#1 0x65218f330633 in objspace_xmalloc0 /run/media/sdc/ruby/ruby-2.7.5/gc.c:9874:5
#2 0x65218f2f3905 in ruby_init /run/media/sdc/ruby/ruby-2.7.5/eval.c:96:17
#3 0x762de180a2e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
Full log (more 4kb): https://github.com/a-shvedov/res/blob/master/src/ruby-2.7.5/buildlog.log
Building with opts:
CC=/usr/bin/clang \
CXX=/usr/bin/clang++ \
CFLAGS="-fsanitize=address -O2 -g" \
CXXFLAGS="-fsanitize=address -O2 -g" \
LDFLAGS="-fsanitize=address" \
./configure && make -j45
Tools:
clang version 6.0.0-3 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
ruby-tarball version: ruby-2.7.5
Updated by mame (Yusuke Endoh) over 3 years ago
I couldn't reproduce the issue. Can you build it with a simple configuration, i.e., without ASAN and without -j45?
Updated by a-shvedov (a-shvedov a-shvedov) over 3 years ago
mame (Yusuke Endoh) wrote in #note-2:
I couldn't reproduce the issue. Can you build it with a simple configuration, i.e., without ASAN and without
-j45?
Yes, no problem with clear build.
Fixed with params:
export ASAN_OPTIONS=detect_leaks=0:handle_segv=0:alloc_dealloc_mismatch=0 ;
CC=/usr/bin/clang CXX=/usr/bin/clang++ CFLAGS="-fsanitize=address -O2 -g" CXXFLAGS="-fsanitize=address -O2 -g" LDFLAGS="-fsanitize=address" ./configure --with-static-linked-ext && make -j 45
Tested as:
ASAN_OPTIONS=verbosity=1:exitcode=0:abort_on_error=1:handle_segv=0:detect_leaks=0:symbolize=0 ./ruby -v
==15700==AddressSanitizer: libc interceptors initialized
|| `[0x10007fff8000, 0x7fffffffffff]` || HighMem ||
|| `[0x02008fff7000, 0x10007fff7fff]` || HighShadow ||
|| `[0x00008fff7000, 0x02008fff6fff]` || ShadowGap ||
|| `[0x00007fff8000, 0x00008fff6fff]` || LowShadow ||
|| `[0x000000000000, 0x00007fff7fff]` || LowMem ||
MemToShadow(shadow): 0x00008fff7000 0x000091ff6dff 0x004091ff6e00 0x02008fff6fff
redzone=16
max_redzone=2048
quarantine_size_mb=256M
thread_local_quarantine_size_kb=1024K
malloc_context_size=30
SHADOW_SCALE: 3
SHADOW_GRANULARITY: 8
SHADOW_OFFSET: 0x7fff8000
==15700==Installed the sigaction for signal 7
==15700==Installed the sigaction for signal 8
==15700==T0: stack [0x7ffc64536000,0x7ffc64d36000) size 0x800000; local=0x7ffc64d33738
==15700==AddressSanitizer Init done
ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
Updated by jeremyevans0 (Jeremy Evans) over 3 years ago
- Status changed from Open to Closed
Actions