Project

General

Profile

Actions

Bug #18681

closed

crashes when built with AddressSanitizer (clang build)

Bug #18681: crashes when built with AddressSanitizer (clang build)

Added by a-shvedov (a-shvedov a-shvedov) over 3 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:108182]

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 Actions #2 [ruby-core:108193]

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 Actions #3 [ruby-core:108194]

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 Actions #4

  • Status changed from Open to Closed
Actions

Also available in: PDF Atom