Skip to content

TSAN Detected Data Race: Fix or Note as False Positive #71

Closed
@sherry-yuan

Description

@sherry-yuan

The following are list of tsan detected data races

The following happened in threadsupport package (which we should note as false positive, given we don't want to change these third party libraries.

WARNING: ThreadSanitizer: data race (pid=714)
  Write of size 4 at 0x559b36f693d4 by thread T4 (mutexes: write M53):
    #0 test_thread(void*) ../lib/acl_threadsupport/test/acl_threadsupport_test.cpp:105 (acl_threadsupport_test+0xa490)

  Previous read of size 4 at 0x559b36f693d4 by main thread:
    #0 threadsupport_threads_Test::testBody() ../lib/acl_threadsupport/test/acl_threadsupport_test.cpp:128 (acl_threadsupport_test+0xaac8)
    #1 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_threadsupport_test+0x1d278)
    #2 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_threadsupport_test+0x1aa94)
    #3 threadsupport_threads_Test::runInThreadOnCopy() <null> (acl_threadsupport_test+0x108ef)
    #4 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_threadsupport_test+0x1d7aa)
    #5 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_threadsupport_test+0x1a9e7)
    #6 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_threadsupport_test+0x1a8f6)
    #7 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_threadsupport_test+0x1d4ba)
    #8 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_threadsupport_test+0x1a873)
    #9 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_threadsupport_test+0x19c4d)
    #10 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_threadsupport_test+0x133ac)
    #11 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_threadsupport_test+0x1354d)
    #12 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_threadsupport_test+0x1367d)
    #13 main ../lib/acl_threadsupport/test/acl_test.cpp:14 (acl_threadsupport_test+0x8c0b)

  Location is global 'threadtest_state' of size 4 at 0x559b36f693d4 (acl_threadsupport_test+0x00000002f3d4)

  Mutex M53 (0x559b36f693e0) created at:
    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1220 (libtsan.so.0+0x4a616)
    #1 acl_mutex_init ../lib/acl_threadsupport/src/acl_threadsupport.c:97 (acl_threadsupport_test+0x120ec)
    #2 threadsupport_threads_Test::testBody() ../lib/acl_threadsupport/test/acl_threadsupport_test.cpp:115 (acl_threadsupport_test+0xa529)
    #3 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_threadsupport_test+0x1d278)
    #4 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_threadsupport_test+0x1aa94)
    #5 threadsupport_threads_Test::runInThreadOnCopy() <null> (acl_threadsupport_test+0x108ef)
    #6 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_threadsupport_test+0x1d7aa)
    #7 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_threadsupport_test+0x1a9e7)
    #8 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_threadsupport_test+0x1a8f6)
    #9 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_threadsupport_test+0x1d4ba)
    #10 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_threadsupport_test+0x1a873)
    #11 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_threadsupport_test+0x19c4d)
    #12 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_threadsupport_test+0x133ac)
    #13 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_threadsupport_test+0x1354d)
    #14 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_threadsupport_test+0x1367d)
    #15 main ../lib/acl_threadsupport/test/acl_test.cpp:14 (acl_threadsupport_test+0x8c0b)

  Thread T4 (tid=719, running) created by main thread at:
    #0 pthread_create ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:962 (libtsan.so.0+0x5ea79)
    #1 acl_thread_create ../lib/acl_threadsupport/src/acl_threadsupport.c:50 (acl_threadsupport_test+0x11ed9)
    #2 threadsupport_threads_Test::testBody() ../lib/acl_threadsupport/test/acl_threadsupport_test.cpp:121 (acl_threadsupport_test+0xa781)
    #3 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_threadsupport_test+0x1d278)
    #4 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_threadsupport_test+0x1aa94)
    #5 threadsupport_threads_Test::runInThreadOnCopy() <null> (acl_threadsupport_test+0x108ef)
    #6 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_threadsupport_test+0x1d7aa)
    #7 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_threadsupport_test+0x1a9e7)
    #8 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_threadsupport_test+0x1a8f6)
    #9 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_threadsupport_test+0x1d4ba)
    #10 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_threadsupport_test+0x1a873)
    #11 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_threadsupport_test+0x19c4d)
    #12 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_threadsupport_test+0x133ac)
    #13 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_threadsupport_test+0x1354d)
    #14 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_threadsupport_test+0x1367d)
    #15 main ../lib/acl_threadsupport/test/acl_test.cpp:14 (acl_threadsupport_test+0x8c0b)

SUMMARY: ThreadSanitizer: data race ../lib/acl_threadsupport/test/acl_threadsupport_test.cpp:105 in test_thread(void*)

The following are found in our source code which is what we should care about

WARNING: ThreadSanitizer: heap-use-after-free (pid=737)
  Read of size 4 at 0x7b3c000003d4 by main thread:
    #0 acl_ref_count<_cl_command_queue*> ../include/acl_util.h:433 (acl_test+0x1263a8)
    #1 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:677 (acl_test+0x1263a8)
    #2 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #3 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #4 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #5 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #6 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #7 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #8 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #9 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #10 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #11 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #12 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #13 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #14 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Previous write of size 8 at 0x7b3c000003d0 by main thread (mutexes: write M44):
    #0 operator delete(void*) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:126 (libtsan.so.0+0x8b2c8)
    #1 acl_delete<_cl_command_queue> ../include/acl_support.h:31 (acl_test+0x49040)
    #2 acl_free_cl_command_queue ../src/acl_command_queue.cpp:99 (acl_test+0x49040)
    #3 acl_delete_command_queue ../src/acl_command_queue.cpp:1005 (acl_test+0x49316)
    #4 clReleaseCommandQueueIntelFPGA ../src/acl_command_queue.cpp:288 (acl_test+0x4a755)
    #5 clReleaseCommandQueue ../src/acl_command_queue.cpp:297 (acl_test+0x4a7ad)
    #6 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:675 (acl_test+0x126192)
    #7 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #8 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #9 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #10 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #11 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #12 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #13 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #14 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #15 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #16 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #17 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #18 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #19 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Mutex M44 (0x55817c8c2100) created at:
    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1220 (libtsan.so.0+0x4a616)
    #1 acl_init_condvar ../lib/acl_threadsupport/src/acl_threadsupport.c:330 (acl_test+0x54382e)
    #2 l_global_lock_init ../src/acl_thread.cpp:102 (acl_test+0x102eda)
    #3 __libc_csu_init <null> (acl_test+0x556acc)

SUMMARY: ThreadSanitizer: heap-use-after-free ../include/acl_util.h:433 in acl_ref_count<_cl_command_queue*>
==================
==================
WARNING: ThreadSanitizer: heap-use-after-free (pid=737)
  Read of size 4 at 0x7b3c000002e4 by main thread:
    #0 acl_ref_count<_cl_command_queue*> ../include/acl_util.h:433 (acl_test+0x1264c3)
    #1 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:678 (acl_test+0x1264c3)
    #2 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #3 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #4 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #5 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #6 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #7 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #8 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #9 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #10 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #11 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #12 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #13 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #14 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Previous write of size 8 at 0x7b3c000002e0 by main thread (mutexes: write M44):
    #0 operator delete(void*) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:126 (libtsan.so.0+0x8b2c8)
    #1 acl_delete<_cl_command_queue> ../include/acl_support.h:31 (acl_test+0x49040)
    #2 acl_free_cl_command_queue ../src/acl_command_queue.cpp:99 (acl_test+0x49040)
    #3 acl_delete_command_queue ../src/acl_command_queue.cpp:1005 (acl_test+0x49316)
    #4 clReleaseCommandQueueIntelFPGA ../src/acl_command_queue.cpp:288 (acl_test+0x4a755)
    #5 clReleaseCommandQueue ../src/acl_command_queue.cpp:297 (acl_test+0x4a7ad)
    #6 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:676 (acl_test+0x12629d)
    #7 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #8 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #9 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #10 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #11 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #12 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #13 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #14 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #15 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #16 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #17 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #18 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #19 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Mutex M44 (0x55817c8c2100) created at:
    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1220 (libtsan.so.0+0x4a616)
    #1 acl_init_condvar ../lib/acl_threadsupport/src/acl_threadsupport.c:330 (acl_test+0x54382e)
    #2 l_global_lock_init ../src/acl_thread.cpp:102 (acl_test+0x102eda)
    #3 __libc_csu_init <null> (acl_test+0x556acc)

SUMMARY: ThreadSanitizer: heap-use-after-free ../include/acl_util.h:433 in acl_ref_count<_cl_command_queue*>
==================
==================
WARNING: ThreadSanitizer: heap-use-after-free (pid=737)
  Read of size 8 at 0x7b3c000003c8 by main thread (mutexes: write M44):
    #0 int acl_is_valid_ptr<_cl_command_queue*>(_cl_command_queue* const&) ../include/acl_util.h:417 (acl_test+0x4a45d)
    #1 acl_command_queue_is_valid(_cl_command_queue*) ../src/acl_command_queue.cpp:553 (acl_test+0x4a45d)
    #2 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:680 (acl_test+0x126600)
    #3 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #4 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #5 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #6 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #7 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #8 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #9 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #10 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #11 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #12 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #13 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #14 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #15 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Previous write of size 8 at 0x7b3c000003c8 by main thread (mutexes: write M44):
    #0 operator delete(void*) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:126 (libtsan.so.0+0x8b2c8)
    #1 acl_delete<_cl_command_queue> ../include/acl_support.h:31 (acl_test+0x49040)
    #2 acl_free_cl_command_queue ../src/acl_command_queue.cpp:99 (acl_test+0x49040)
    #3 acl_delete_command_queue ../src/acl_command_queue.cpp:1005 (acl_test+0x49316)
    #4 clReleaseCommandQueueIntelFPGA ../src/acl_command_queue.cpp:288 (acl_test+0x4a755)
    #5 clReleaseCommandQueue ../src/acl_command_queue.cpp:297 (acl_test+0x4a7ad)
    #6 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:675 (acl_test+0x126192)
    #7 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #8 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #9 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #10 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #11 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #12 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #13 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #14 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #15 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #16 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #17 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #18 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #19 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Mutex M44 (0x55817c8c2100) created at:
    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1220 (libtsan.so.0+0x4a616)
    #1 acl_init_condvar ../lib/acl_threadsupport/src/acl_threadsupport.c:330 (acl_test+0x54382e)
    #2 l_global_lock_init ../src/acl_thread.cpp:102 (acl_test+0x102eda)
    #3 __libc_csu_init <null> (acl_test+0x556acc)

SUMMARY: ThreadSanitizer: heap-use-after-free ../include/acl_util.h:417 in int acl_is_valid_ptr<_cl_command_queue*>(_cl_command_queue* const&)
==================
==================
WARNING: ThreadSanitizer: heap-use-after-free (pid=737)
  Read of size 8 at 0x7b3c000002d8 by main thread (mutexes: write M44):
    #0 int acl_is_valid_ptr<_cl_command_queue*>(_cl_command_queue* const&) ../include/acl_util.h:417 (acl_test+0x4a45d)
    #1 acl_command_queue_is_valid(_cl_command_queue*) ../src/acl_command_queue.cpp:553 (acl_test+0x4a45d)
    #2 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:681 (acl_test+0x12666e)
    #3 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #4 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #5 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #6 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #7 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #8 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #9 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #10 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #11 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #12 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #13 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #14 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #15 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Previous write of size 8 at 0x7b3c000002d8 by main thread (mutexes: write M44):
    #0 operator delete(void*) ../../../../src/libsanitizer/tsan/tsan_new_delete.cpp:126 (libtsan.so.0+0x8b2c8)
    #1 acl_delete<_cl_command_queue> ../include/acl_support.h:31 (acl_test+0x49040)
    #2 acl_free_cl_command_queue ../src/acl_command_queue.cpp:99 (acl_test+0x49040)
    #3 acl_delete_command_queue ../src/acl_command_queue.cpp:1005 (acl_test+0x49316)
    #4 clReleaseCommandQueueIntelFPGA ../src/acl_command_queue.cpp:288 (acl_test+0x4a755)
    #5 clReleaseCommandQueue ../src/acl_command_queue.cpp:297 (acl_test+0x4a7ad)
    #6 acl_command_queue_after_context_release_Test::testBody() ../test/acl_command_queue_test.cpp:676 (acl_test+0x12629d)
    #7 Utest::executePlatformSpecificTestBody() ../lib/CppUTest/src/UtestPlatformGcc.cpp:82 (acl_test+0x54e3b4)
    #8 Utest::runInThread() ../lib/CppUTest/src/Utest.cpp:99 (acl_test+0x54bbd0)
    #9 acl_command_queue_after_context_release_Test::runInThreadOnCopy() ../test/acl_command_queue_test.cpp:622 (acl_test+0x13c1c0)
    #10 Utest::executePlatformSpecificRunInThreads() ../lib/CppUTest/src/UtestPlatformGcc.cpp:175 (acl_test+0x54e8e6)
    #11 Utest::run(TestResult&) ../lib/CppUTest/src/Utest.cpp:83 (acl_test+0x54bb23)
    #12 Utest::runOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:69 (acl_test+0x54ba32)
    #13 Utest::executePlatformSpecificRunOneTest(TestPlugin*, TestResult&) ../lib/CppUTest/src/UtestPlatformGcc.cpp:100 (acl_test+0x54e5f6)
    #14 Utest::runOneTestWithPlugins(TestPlugin*, TestResult&) ../lib/CppUTest/src/Utest.cpp:63 (acl_test+0x54b9af)
    #15 TestRegistry::runAllTests(TestResult&) ../lib/CppUTest/src/TestRegistry.cpp:72 (acl_test+0x54ad89)
    #16 CommandLineTestRunner::runAllTests() ../lib/CppUTest/src/CommandLineTestRunner.cpp:105 (acl_test+0x5444e8)
    #17 CommandLineTestRunner::runAllTestsMain() ../lib/CppUTest/src/CommandLineTestRunner.cpp:81 (acl_test+0x544689)
    #18 CommandLineTestRunner::RunAllTests(int, char const**) ../lib/CppUTest/src/CommandLineTestRunner.cpp:63 (acl_test+0x5447b9)
    #19 main ../test/acl_test.cpp:90 (acl_test+0x4b3f45)

  Mutex M44 (0x55817c8c2100) created at:
    #0 pthread_mutex_init ../../../../src/libsanitizer/tsan/tsan_interceptors_posix.cpp:1220 (libtsan.so.0+0x4a616)
    #1 acl_init_condvar ../lib/acl_threadsupport/src/acl_threadsupport.c:330 (acl_test+0x54382e)
    #2 l_global_lock_init ../src/acl_thread.cpp:102 (acl_test+0x102eda)
    #3 __libc_csu_init <null> (acl_test+0x556acc)

SUMMARY: ThreadSanitizer: heap-use-after-free ../include/acl_util.h:417 in int acl_is_valid_ptr<_cl_command_queue*>(_cl_command_queue* const&)
==================

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions