Yingchun Lai has posted comments on this change. ( http://gerrit.cloudera.org:8080/12898 )
Change subject: [curl] Fix error status of timeout ...................................................................... Patch Set 4: (2 comments) http://gerrit.cloudera.org:8080/#/c/12898/4//COMMIT_MSG Commit Message: http://gerrit.cloudera.org:8080/#/c/12898/4//COMMIT_MSG@7 PS4, Line 7: [curl] Fix error status of timeout > Curious in what context you found this? A new test? Yes, it's a new unit test for a new feature of my own branch which may cause a deadlock. http://gerrit.cloudera.org:8080/#/c/12898/4/src/kudu/util/curl_util-test.cc File src/kudu/util/curl_util-test.cc: http://gerrit.cloudera.org:8080/#/c/12898/4/src/kudu/util/curl_util-test.cc@29 PS4, Line 29: // When using a thread sanitizer, there will be a data race when timeout. > Can you share what this data race looks like? Error Message WARNING: ThreadSanitizer: data race (pid=24445) Write of size 8 at 0x7b2000000480 by thread T2: Stacktrace WARNING: ThreadSanitizer: data race (pid=24445) Write of size 8 at 0x7b2000000480 by thread T2: #0 free /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/llvm-6.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:709 (curl_util-test+0x432009) #1 getaddrinfo_thread <null> (libcurl.so.4+0x3db71) #2 curl_thread_create_thunk <null> (libcurl.so.4+0x3b172) Previous read of size 8 at 0x7b2000000480 by main thread: #0 destroy_async_data <null> (libcurl.so.4+0x3d0cc) #1 Curl_resolver_cancel <null> (libcurl.so.4+0x3d04b) #2 multi_done <null> (libcurl.so.4+0x30b0b) #3 multi_runsingle <null> (libcurl.so.4+0x32d3d) #4 curl_multi_perform <null> (libcurl.so.4+0x31cf5) #5 curl_easy_perform <null> (libcurl.so.4+0x2aa0b) #6 kudu::EasyCurl::DoRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*, kudu::faststring*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/curl_util.cc:123:3 (libkudu_curl_util.so+0x4156) #7 kudu::EasyCurl::FetchURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, kudu::faststring*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/curl_util.cc:72:10 (libkudu_curl_util.so+0x3c3b) #8 kudu::CurlUtilTest_TestTimeout_Test::TestBody() /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/curl_util-test.cc:36:19 (curl_util-test+0x4bb0df) #9 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x552ef) #10 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2438 (libgmock.so+0x552ef) #11 testing::Test::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2474:5 (libgmock.so+0x344b8) #12 testing::TestInfo::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2656:11 (libgmock.so+0x3574c) #13 testing::TestCase::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2774:28 (libgmock.so+0x36226) #14 testing::internal::UnitTestImpl::RunAllTests() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:4649:43 (libgmock.so+0x425fa) #15 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x5625f) #16 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2438 (libgmock.so+0x5625f) #17 testing::UnitTest::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:4257:10 (libgmock.so+0x41ee2) #18 RUN_ALL_TESTS() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/installed/tsan/include/gtest/gtest.h:2233:46 (libkudu_test_main.so+0x34db) #19 main /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/test_main.cc:106:13 (libkudu_test_main.so+0x2c86) Thread T2 (tid=24450, running) created by main thread at: #0 pthread_create /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/llvm-6.0.0.src/projects/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc:992 (curl_util-test+0x428b86) #1 Curl_thread_create <null> (libcurl.so.4+0x3b0ed) #2 Curl_resolver_getaddrinfo <null> (libcurl.so.4+0x3d86b) #3 Curl_getaddrinfo <null> (libcurl.so.4+0x37b25) #4 Curl_resolv <null> (libcurl.so.4+0xb548) #5 Curl_resolv_timeout <null> (libcurl.so.4+0xb685) #6 create_conn <null> (libcurl.so.4+0x21c57) #7 Curl_connect <null> (libcurl.so.4+0x1bf17) #8 multi_runsingle <null> (libcurl.so.4+0x326a1) #9 curl_multi_perform <null> (libcurl.so.4+0x31cf5) #10 curl_easy_perform <null> (libcurl.so.4+0x2aa0b) #11 kudu::EasyCurl::DoRequest(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*, kudu::faststring*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/curl_util.cc:123:3 (libkudu_curl_util.so+0x4156) #12 kudu::EasyCurl::FetchURL(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, kudu::faststring*, std::__1::vector<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::allocator<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&) /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/curl_util.cc:72:10 (libkudu_curl_util.so+0x3c3b) #13 kudu::CurlUtilTest_TestTimeout_Test::TestBody() /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/curl_util-test.cc:36:19 (curl_util-test+0x4bb0df) #14 void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x552ef) #15 void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2438 (libgmock.so+0x552ef) #16 testing::Test::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2474:5 (libgmock.so+0x344b8) #17 testing::TestInfo::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2656:11 (libgmock.so+0x3574c) #18 testing::TestCase::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2774:28 (libgmock.so+0x36226) #19 testing::internal::UnitTestImpl::RunAllTests() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:4649:43 (libgmock.so+0x425fa) #20 bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2402:10 (libgmock.so+0x5625f) #21 bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:2438 (libgmock.so+0x5625f) #22 testing::UnitTest::Run() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/src/googletest-release-1.8.0/googletest/src/gtest.cc:4257:10 (libgmock.so+0x41ee2) #23 RUN_ALL_TESTS() /home/jenkins-slave/workspace/kudu-master/1/thirdparty/installed/tsan/include/gtest/gtest.h:2233:46 (libkudu_test_main.so+0x34db) #24 main /home/jenkins-slave/workspace/kudu-master/1/src/kudu/util/test_main.cc:106:13 (libkudu_test_main.so+0x2c86) -- To view, visit http://gerrit.cloudera.org:8080/12898 To unsubscribe, visit http://gerrit.cloudera.org:8080/settings Gerrit-Project: kudu Gerrit-Branch: master Gerrit-MessageType: comment Gerrit-Change-Id: Ib8fab1bd1a34b06624db4fd51d782a213f93321c Gerrit-Change-Number: 12898 Gerrit-PatchSet: 4 Gerrit-Owner: Yingchun Lai <[email protected]> Gerrit-Reviewer: Adar Dembo <[email protected]> Gerrit-Reviewer: Kudu Jenkins (120) Gerrit-Reviewer: Yingchun Lai <[email protected]> Gerrit-Comment-Date: Mon, 01 Apr 2019 02:15:16 +0000 Gerrit-HasComments: Yes
