[
https://issues.apache.org/jira/browse/MESOS-4335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15092805#comment-15092805
]
Neil Conway commented on MESOS-4335:
------------------------------------
>From a quick bit of looking:
* Error seems weird: TestAnonymous is a derived class of Anonymous, but the
latter declares a virtual destructor, so everything should be kosher.
* Same error if we use {{unique_ptr<Anonymous>}} in the vector rather than
{{Owned<Anonymous>}}
* Issue does _not_ seem to repro if you recreate a trivial example involving a
base class, derived class, and a vector of unique_ptr<Base>.
Still a good chance this is a ubsan bug, but requires a bit more digging.
> Investigate ubsan error in AnonymousTest.Running
> ------------------------------------------------
>
> Key: MESOS-4335
> URL: https://issues.apache.org/jira/browse/MESOS-4335
> Project: Mesos
> Issue Type: Task
> Components: modules
> Reporter: Neil Conway
> Priority: Minor
> Labels: mesosphere, module, ubsan
>
> {noformat}
> [ RUN ] AnonymousTest.Running
> /mesos-2/3rdparty/libprocess/include/process/owned.hpp:202:3: runtime error:
> member call on address 0x00000be1dcc0 which does not point to an object of
> type 'Anonymous'
> 0x00000be1dcc0: note: object is of type 'TestAnonymous'
> 00 00 00 00 30 50 f9 db 48 7f 00 00 53 54 5f 41 4e 4f 4e 59 4d 4f 55 53
> 00 00 00 00 21 00 00 00
> ^~~~~~~~~~~~~~~~~~~~~~~
> vptr for 'TestAnonymous'
> #0 0xb85f4d in process::Owned<mesos::modules::Anonymous>::Data::~Data()
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb85f4d)
> #1 0xb93d30 in
> std::_Sp_counted_ptr<process::Owned<mesos::modules::Anonymous>::Data*,
> (__gnu_cxx::_Lock_policy)2>::_M_dispose()
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb93d30)
> #2 0xb05a4c in
> std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release()
> /usr/include/c++/5.3.0/bits/shared_ptr_base.h:150
> #3 0xb01a5e in
> std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count()
> /usr/include/c++/5.3.0/bits/shared_ptr_base.h:659
> #4 0xb4ee7a in
> std::__shared_ptr<process::Owned<mesos::modules::Anonymous>::Data,
> (__gnu_cxx::_Lock_policy)2>::~__shared_ptr()
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb4ee7a)
> #5 0xb4eede in
> std::shared_ptr<process::Owned<mesos::modules::Anonymous>::Data>::~shared_ptr()
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb4eede)
> #6 0xb4ef42 in process::Owned<mesos::modules::Anonymous>::~Owned()
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb4ef42)
> #7 0xb83e81 in void
> std::_Destroy<process::Owned<mesos::modules::Anonymous>
> >(process::Owned<mesos::modules::Anonymous>*)
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb83e81)
> #8 0xb7aa43 in void
> std::_Destroy_aux<false>::__destroy<process::Owned<mesos::modules::Anonymous>*>(process::Owned<mesos::modules::Anonymous>*,
> process::Owned<mesos::modules::Anonymous>*)
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb7aa43)
> #9 0xb70e77 in void
> std::_Destroy<process::Owned<mesos::modules::Anonymous>*>(process::Owned<mesos::modules::Anonymous>*,
> process::Owned<mesos::modules::Anonymous>*)
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb70e77)
> #10 0xb6505b in void
> std::_Destroy<process::Owned<mesos::modules::Anonymous>*,
> process::Owned<mesos::modules::Anonymous>
> >(process::Owned<mesos::modules::Anonymous>*,
> process::Owned<mesos::modules::Anonymous>*,
> std::allocator<process::Owned<mesos::modules::Anonymous> >&)
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb6505b)
> #11 0xb57cbe in std::vector<process::Owned<mesos::modules::Anonymous>,
> std::allocator<process::Owned<mesos::modules::Anonymous> > >::~vector()
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xb57cbe)
> #12 0xb42097 in
> mesos::internal::tests::AnonymousTest_Running_Test::TestBody()
> /mesos-2/src/tests/anonymous_tests.cpp:71
> #13 0x2e397b1 in void
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> gmock-1.7.0/gtest/src/gtest.cc:2078
> #14 0x2e29993 in void
> testing::internal::HandleExceptionsInMethodIfSupported<testing::Test,
> void>(testing::Test*, void (testing::Test::*)(), char const*)
> gmock-1.7.0/gtest/src/gtest.cc:2114
> #15 0x2dc939d in testing::Test::Run() gmock-1.7.0/gtest/src/gtest.cc:2151
> #16 0x2dcb056 in testing::TestInfo::Run()
> gmock-1.7.0/gtest/src/gtest.cc:2326
> #17 0x2dccb6a in testing::TestCase::Run()
> gmock-1.7.0/gtest/src/gtest.cc:2444
> #18 0x2de6290 in testing::internal::UnitTestImpl::RunAllTests()
> gmock-1.7.0/gtest/src/gtest.cc:4315
> #19 0x2e3bd7f in bool
> testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
> bool>(testing::internal::UnitTestImpl*, bool
> (testing::internal::UnitTestImpl::*)(), char const*)
> gmock-1.7.0/gtest/src/gtest.cc:2078
> #20 0x2e2bd67 in bool
> testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,
> bool>(testing::internal::UnitTestImpl*, bool
> (testing::internal::UnitTestImpl::*)(), char const*)
> gmock-1.7.0/gtest/src/gtest.cc:2114
> #21 0x2ddf009 in testing::UnitTest::Run()
> gmock-1.7.0/gtest/src/gtest.cc:3926
> #22 0x170b27b in RUN_ALL_TESTS()
> ../3rdparty/libprocess/3rdparty/gmock-1.7.0/gtest/include/gtest/gtest.h:2288
> #23 0x170ab6d in main /mesos-2/src/tests/main.cpp:97
> #24 0x7f48df58760f in __libc_start_main (/usr/lib/libc.so.6+0x2060f)
> #25 0xaf54b8 in _start
> (/home/vagrant/build-mesos-2-ubsan/src/.libs/lt-mesos-tests+0xaf54b8)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)