New issue
Advanced search Search tips

Issue 605894 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

libevent 1.4 has unnecessary global variables that trigger tsan errors

Project Member Reported by tommi@chromium.org, Apr 22 2016

Issue description

I ran into the following issue with libevent 1.4 where a deprecated part of libevent triggers tsan errors.  The variables aren't actually used, so we should remove them instead of suppressing the tsan reports.

Here's an example report:

WARNING: ThreadSanitizer: data race (pid=19247)
  Read of size 4 at 0x000001adaa10 by thread T1:
    #0 event_base_loop chromium/src/base/third_party/libevent/event.c:495:10 (rtc_unittests+0x0000009effe7)
    #1 rtc::TaskQueue::ThreadMain(void*) webrtc/base/task_queue.cc:503:5 (rtc_unittests+0x0000009e95e1)
    #2 Run webrtc/base/platform_thread.cc:198:10 (rtc_unittests+0x0000009e5868)
    #3 rtc::PlatformThread::StartThread(void*) webrtc/base/platform_thread.cc:127 (rtc_unittests+0x0000009e5868)

  Previous write of size 4 at 0x000001adaa10 by main thread:
    #0 event_base_new chromium/src/base/third_party/libevent/event.c:172:15 (rtc_unittests+0x0000009eedc4)
    #1 rtc::TaskQueue::TaskQueue(char const*) webrtc/base/task_queue.cc:189:19 (rtc_unittests+0x0000009e9339)
    #2 rtc::TaskQueueTest_PostAndReply2_Test::TestBody() webrtc/base/task_queue_unittest.cc:138:13 (rtc_unittests+0x000000638e15)
    #3 HandleExceptionsInMethodIfSupported<testing::Test, void> chromium/src/testing/gtest/src/gtest.cc:2458:12 (rtc_unittests+0x0000009c973c)
    #4 testing::Test::Run() chromium/src/testing/gtest/src/gtest.cc:2474 (rtc_unittests+0x0000009c973c)
    #5 testing::TestInfo::Run() chromium/src/testing/gtest/src/gtest.cc:2656:5 (rtc_unittests+0x0000009ca683)
    #6 testing::TestCase::Run() chromium/src/testing/gtest/src/gtest.cc:2774:5 (rtc_unittests+0x0000009cae88)
    #7 testing::internal::UnitTestImpl::RunAllTests() chromium/src/testing/gtest/src/gtest.cc:4647:11 (rtc_unittests+0x0000009d3de2)
    #8 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> chromium/src/testing/gtest/src/gtest.cc:2458:12 (rtc_unittests+0x0000009d3846)
    #9 testing::UnitTest::Run() chromium/src/testing/gtest/src/gtest.cc:4255 (rtc_unittests+0x0000009d3846)
    #10 RUN_ALL_TESTS testing/gtest/include/gtest/gtest.h:2237:10 (rtc_unittests+0x0000008eda3b)
    #11 main webrtc/base/unittest_main.cc:105 (rtc_unittests+0x0000008eda3b)

  Location is global 'event_gotsig' of size 4 at 0x000001adaa10 (rtc_unittests+0x000001adaa10)

  Thread T1 'PostAndReply2' (tid=19265, running) created by main thread at:
    #0 pthread_create <null> (rtc_unittests+0x000000480675)
    #1 rtc::PlatformThread::Start() webrtc/base/platform_thread.cc:149:3 (rtc_unittests+0x0000009e5917)
    #2 rtc::TaskQueue::TaskQueue(char const*) webrtc/base/task_queue.cc:209:3 (rtc_unittests+0x0000009e94cc)
    #3 rtc::TaskQueueTest_PostAndReply2_Test::TestBody() webrtc/base/task_queue_unittest.cc:137:13 (rtc_unittests+0x000000638dfc)
    #4 HandleExceptionsInMethodIfSupported<testing::Test, void> chromium/src/testing/gtest/src/gtest.cc:2458:12 (rtc_unittests+0x0000009c973c)
    #5 testing::Test::Run() chromium/src/testing/gtest/src/gtest.cc:2474 (rtc_unittests+0x0000009c973c)
    #6 testing::TestInfo::Run() chromium/src/testing/gtest/src/gtest.cc:2656:5 (rtc_unittests+0x0000009ca683)
    #7 testing::TestCase::Run() chromium/src/testing/gtest/src/gtest.cc:2774:5 (rtc_unittests+0x0000009cae88)
    #8 testing::internal::UnitTestImpl::RunAllTests() chromium/src/testing/gtest/src/gtest.cc:4647:11 (rtc_unittests+0x0000009d3de2)
    #9 HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> chromium/src/testing/gtest/src/gtest.cc:2458:12 (rtc_unittests+0x0000009d3846)
    #10 testing::UnitTest::Run() chromium/src/testing/gtest/src/gtest.cc:4255 (rtc_unittests+0x0000009d3846)
    #11 RUN_ALL_TESTS testing/gtest/include/gtest/gtest.h:2237:10 (rtc_unittests+0x0000008eda3b)
    #12 main webrtc/base/unittest_main.cc:105 (rtc_unittests+0x0000008eda3b)

 

Comment 2 by tommi@chromium.org, Apr 22 2016

Status: Fixed (was: Assigned)

Sign in to add a comment