You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@kudu.apache.org by "Yingchun Lai (Code Review)" <ge...@cloudera.org> on 2019/04/01 02:15:16 UTC

[kudu-CR] [curl] Fix error status of timeout

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 <40...@qq.com>
Gerrit-Reviewer: Adar Dembo <ad...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins (120)
Gerrit-Reviewer: Yingchun Lai <40...@qq.com>
Gerrit-Comment-Date: Mon, 01 Apr 2019 02:15:16 +0000
Gerrit-HasComments: Yes