Project

General

Profile

Actions

Bug #50473

closed

ceph_test_rados_api_lock_pp segfault in librados::v14_2_0::RadosClient::wait_for_osdmap()

Added by Brad Hubbard about 3 years ago. Updated about 2 years ago.

Status:
Can't reproduce
Priority:
High
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Q/A
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rados
Component(RADOS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

/a/nojha-2021-04-15_20:05:27-rados-wip-50217-distro-basic-smithi/6049636

(gdb) bt
#0  librados::v14_2_0::RadosClient::wait_for_osdmap (this=0x0) at ./src/librados/RadosClient.cc:552
#1  0x00007f0eb6911f77 in librados::v14_2_0::RadosClient::lookup_pool (this=this@entry=0x0, name=name@entry=0x55bf48e178d0 "test-rados-api-smithi167-18396-10") at ./src/librados/RadosClient.cc:69
#2  0x00007f0eb6912099 in librados::v14_2_0::RadosClient::create_ioctx (this=this@entry=0x0, name=name@entry=0x55bf48e178d0 "test-rados-api-smithi167-18396-10", io=io@entry=0x7ffd142757e0) at ./src/librados/RadosClient.cc:470
#3  0x00007f0eb6887399 in _rados_ioctx_create (cluster=0x0, name=0x55bf48e178d0 "test-rados-api-smithi167-18396-10", io=io@entry=0x7ffd14275820) at ./src/librados/librados_c.cc:1121
#4  0x00007f0eb68c83a9 in librados::v14_2_0::Rados::ioctx_create (this=<optimized out>, name=<optimized out>, io=...) at ./src/librados/librados_cxx.cc:2637
#5  0x000055bf471ea8a4 in RadosTestECPP::SetUp (this=0x55bf48efd410) at /usr/include/c++/9/bits/basic_string.h:2300
#6  0x000055bf471e2a91 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (location=0x55bf472057ee "SetUp()", method=<optimized out>, object=0x55bf48efd410)
    at ./src/googletest/googletest/src/gtest.cc:2586
#7  testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=object@entry=0x55bf48efd410, method=<optimized out>, location=location@entry=0x55bf472057ee "SetUp()")
    at ./src/googletest/googletest/src/gtest.cc:2641
#8  0x000055bf471d54a1 in testing::Test::Run (this=0x55bf48efd410) at ./src/googletest/googletest/src/gtest.cc:2675
#9  testing::Test::Run (this=0x55bf48efd410) at ./src/googletest/googletest/src/gtest.cc:2670
#10 0x000055bf471d5675 in testing::TestInfo::Run (this=0x55bf48d93740) at ./src/googletest/googletest/src/gtest.cc:2858
#11 testing::TestInfo::Run (this=0x55bf48d93740) at ./src/googletest/googletest/src/gtest.cc:2831
#12 0x000055bf471d5c09 in testing::TestSuite::Run (this=0x55bf48dc02f0) at ./src/googletest/googletest/src/gtest.cc:3012
#13 testing::TestSuite::Run (this=0x55bf48dc02f0) at ./src/googletest/googletest/src/gtest.cc:2991
#14 0x000055bf471d6237 in testing::internal::UnitTestImpl::RunAllTests (this=0x55bf48d97f00) at /usr/include/c++/9/bits/stl_vector.h:1040
#15 0x000055bf471e3001 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (location=0x55bf472071b0 "auxiliary test code (environments or event listeners)", method=<optimized out>, 
    object=0x55bf48d97f00) at ./src/googletest/googletest/src/gtest.cc:2586
#16 testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x55bf48d97f00, method=<optimized out>, 
    location=location@entry=0x55bf472071b0 "auxiliary test code (environments or event listeners)") at ./src/googletest/googletest/src/gtest.cc:2641
#17 0x000055bf471d5741 in testing::UnitTest::Run (this=0x55bf472300a0 <testing::UnitTest::GetInstance()::instance>) at ./src/googletest/googletest/include/gtest/gtest.h:1429
#18 0x000055bf47194c8d in RUN_ALL_TESTS () at ./src/googletest/googletest/include/gtest/gtest.h:2486
#19 main (argc=<optimized out>, argv=0x7ffd14275ca8) at ./src/googletest/googlemock/src/gmock_main.cc:70
(gdb) bt
#0  librados::v14_2_0::RadosClient::wait_for_osdmap (this=0x0) at ./src/librados/RadosClient.cc:552
#1  0x00007f0eb6911f77 in librados::v14_2_0::RadosClient::lookup_pool (this=this@entry=0x0, name=name@entry=0x55bf48e178d0 "test-rados-api-smithi167-18396-10") at ./src/librados/RadosClient.cc:69
#2  0x00007f0eb6912099 in librados::v14_2_0::RadosClient::create_ioctx (this=this@entry=0x0, name=name@entry=0x55bf48e178d0 "test-rados-api-smithi167-18396-10", io=io@entry=0x7ffd142757e0) at ./src/librados/RadosClient.cc:470
#3  0x00007f0eb6887399 in _rados_ioctx_create (cluster=0x0, name=0x55bf48e178d0 "test-rados-api-smithi167-18396-10", io=io@entry=0x7ffd14275820) at ./src/librados/librados_c.cc:1121
#4  0x00007f0eb68c83a9 in librados::v14_2_0::Rados::ioctx_create (this=<optimized out>, name=<optimized out>, io=...) at ./src/librados/librados_cxx.cc:2637
#5  0x000055bf471ea8a4 in RadosTestECPP::SetUp (this=0x55bf48efd410) at /usr/include/c++/9/bits/basic_string.h:2300
#6  0x000055bf471e2a91 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void> (location=0x55bf472057ee "SetUp()", method=<optimized out>, object=0x55bf48efd410)
    at ./src/googletest/googletest/src/gtest.cc:2586
#7  testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void> (object=object@entry=0x55bf48efd410, method=<optimized out>, location=location@entry=0x55bf472057ee "SetUp()")
    at ./src/googletest/googletest/src/gtest.cc:2641
#8  0x000055bf471d54a1 in testing::Test::Run (this=0x55bf48efd410) at ./src/googletest/googletest/src/gtest.cc:2675
#9  testing::Test::Run (this=0x55bf48efd410) at ./src/googletest/googletest/src/gtest.cc:2670
#10 0x000055bf471d5675 in testing::TestInfo::Run (this=0x55bf48d93740) at ./src/googletest/googletest/src/gtest.cc:2858
#11 testing::TestInfo::Run (this=0x55bf48d93740) at ./src/googletest/googletest/src/gtest.cc:2831
#12 0x000055bf471d5c09 in testing::TestSuite::Run (this=0x55bf48dc02f0) at ./src/googletest/googletest/src/gtest.cc:3012
#13 testing::TestSuite::Run (this=0x55bf48dc02f0) at ./src/googletest/googletest/src/gtest.cc:2991
#14 0x000055bf471d6237 in testing::internal::UnitTestImpl::RunAllTests (this=0x55bf48d97f00) at /usr/include/c++/9/bits/stl_vector.h:1040
#15 0x000055bf471e3001 in testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (location=0x55bf472071b0 "auxiliary test code (environments or event listeners)", method=<optimized out>, 
    object=0x55bf48d97f00) at ./src/googletest/googletest/src/gtest.cc:2586
#16 testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> (object=0x55bf48d97f00, method=<optimized out>, 
    location=location@entry=0x55bf472071b0 "auxiliary test code (environments or event listeners)") at ./src/googletest/googletest/src/gtest.cc:2641
#17 0x000055bf471d5741 in testing::UnitTest::Run (this=0x55bf472300a0 <testing::UnitTest::GetInstance()::instance>) at ./src/googletest/googletest/include/gtest/gtest.h:1429
#18 0x000055bf47194c8d in RUN_ALL_TESTS () at ./src/googletest/googletest/include/gtest/gtest.h:2486
#19 main (argc=<optimized out>, argv=0x7ffd14275ca8) at ./src/googletest/googlemock/src/gmock_main.cc:70
(gdb) f
#0  librados::v14_2_0::RadosClient::wait_for_osdmap (this=0x0) at ./src/librados/RadosClient.cc:552
552       if (state != CONNECTED) {
(gdb) p state
Cannot access memory at address 0xb8
(gdb) p this.state
Cannot access memory at address 0xb8
(gdb) p this
$1 = (librados::v14_2_0::RadosClient * const) 0x0
Actions #1

Updated by Brad Hubbard about 3 years ago

I suspect the Rados object was deleted in another, now finished, thread while this thread was still using it. This is currently just a single threaded process so I suspect we missed the party in terms of catching what happened. The main thing is the test failed. If we fix that we probably stop this happening.

Actions #2

Updated by Neha Ojha about 2 years ago

  • Status changed from New to Can't reproduce
Actions

Also available in: Atom PDF