Skip to content

Commit eb6e36a

Browse files
committed
Skip tests in TestThreadLockNativeThread when using LSAN
These tests use NM threads but NT is not freed for MN thread, causing it to be reported as memory leaks in LSAN. For example: #1 0x62ee7bc67e99 in calloc1 gc/default/default.c:1495:12 #2 0x62ee7bc7ba00 in rb_gc_impl_calloc gc/default/default.c:8216:5 #3 0x62ee7bc631d1 in ruby_xcalloc_body gc.c:5221:12 #4 0x62ee7bc5cdbc in ruby_xcalloc gc.c:5215:34 #5 0x62ee7bdea4c6 in native_thread_alloc thread_pthread.c:2187:35 #6 0x62ee7bdec31b in native_thread_check_and_create_shared thread_pthread_mn.c:429:39 #7 0x62ee7bdea484 in native_thread_create_shared thread_pthread_mn.c:531:12 #8 0x62ee7bdea1da in native_thread_create thread_pthread.c:2403:16 #9 0x62ee7bdde2eb in thread_create_core thread.c:884:11 #10 0x62ee7bde4466 in thread_initialize thread.c:992:16
1 parent 89849f3 commit eb6e36a

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

test/-ext-/thread/test_lock_native_thread.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515

1616
class TestThreadLockNativeThread < Test::Unit::TestCase
1717
def test_lock_native_thread
18+
omit "LSAN reports memory leak because NT is not freed for MN thread" if Test::Sanitizers.lsan_enabled?
19+
1820
assert_separately([{'RUBY_MN_THREADS' => '1'}], <<-RUBY)
1921
require '-test-/thread/lock_native_thread'
2022
@@ -28,6 +30,8 @@ def test_lock_native_thread
2830
end
2931

3032
def test_lock_native_thread_tls
33+
omit "LSAN reports memory leak because NT is not freed for MN thread" if Test::Sanitizers.lsan_enabled?
34+
3135
assert_separately([{'RUBY_MN_THREADS' => '1'}], <<-RUBY)
3236
require '-test-/thread/lock_native_thread'
3337
tn = 10

0 commit comments

Comments
 (0)