Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DocDB] Tserver Crash in WriteBuffer::Take or SharedExchangeQuery::SendResponse() #23960

Closed
1 task done
shamanthchandra-yb opened this issue Sep 17, 2024 · 0 comments
Closed
1 task done
Assignees
Labels

Comments

@shamanthchandra-yb
Copy link

shamanthchandra-yb commented Sep 17, 2024

Jira Link: DB-12860

Description

CDC master case without tablet splitting failed with a tserver crash.

Build: 2.23.1.0-b154

Please find stress run link in JIRA.

  * frame #0: 0x000055762094d1ae yb-server`yb::WriteBuffer::Take(yb::WriteBuffer*) [inlined] std::__1::shared_ptr<yb::MemTracker>::get[abi:ue170006](this=0x2d206e6f69746163) const at shared_ptr.h:870:16
    frame #1: 0x000055762094d1ae yb-server`yb::WriteBuffer::Take(yb::WriteBuffer*) [inlined] std::__1::shared_ptr<yb::MemTracker>::operator bool[abi:ue170006](this=0x2d206e6f69746163) const at shared_ptr.h:902:16
    frame #2: 0x000055762094d1ae yb-server`yb::WriteBuffer::Take(yb::WriteBuffer*) [inlined] bool std::__1::operator==[abi:ue170006]<yb::MemTracker>(__x=nullptr, (null)=0x0000000000000000) at shared_ptr.h:1413:13
    frame #3: 0x000055762094d1ae yb-server`yb::WriteBuffer::Take(yb::WriteBuffer*) [inlined] yb::ScopedTrackedConsumption::operator bool(this=0x2d206e6f69746163) const at mem_tracker.h:620:21
    frame #4: 0x000055762094d1ae yb-server`yb::WriteBuffer::Take(this=0x000024ab17bff400, source=0x000024ab49a93a40) at write_buffer.cc:108:23
    frame #5: 0x0000557620414022 yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] yb::WriteBuffer::WriteBuffer(this=<unavailable>, rhs=0x000024ab49a93a40) at write_buffer.h:40:5
    frame #6: 0x0000557620413fbf yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] yb::WriteBuffer* std::__1::construct_at[abi:ue170006]<yb::WriteBuffer, yb::WriteBuffer, yb::WriteBuffer*>(__location=<unavailable>, __args=0x000024ab49a93a40) at construct_at.h:41:46
    frame #7: 0x0000557620413fbf yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] void std::__1::allocator_traits<std::__1::allocator<yb::WriteBuffer>>::construct[abi:ue170006]<yb::WriteBuffer, yb::WriteBuffer, void, void>((null)=<unavailable>, __p=<unavailable>, __args=0x000024ab49a93a40) at allocator_traits.h:304:9
    frame #8: 0x0000557620413fbf yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] std::__1::reverse_iterator<yb::WriteBuffer*> std::__1::__uninitialized_allocator_move_if_noexcept[abi:ue170006]<std::__1::allocator<yb::WriteBuffer>, std::__1::reverse_iterator<yb::WriteBuffer*>, std::__1::reverse_iterator<yb::WriteBuffer*>, std::__1::reverse_iterator<yb::WriteBuffer*>>(__alloc=0x000024ab6d831d78, __first1=reverse_iterator<yb::WriteBuffer *> @ 0x000055601a95c940, __last1=reverse_iterator<yb::WriteBuffer *> @ 0x000055601a885cb0, __first2=reverse_iterator<yb::WriteBuffer *> @ 0x000055601a885cb0) at uninitialized_algorithms.h:615:5
    frame #9: 0x0000557620413f90 yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] std::__1::vector<yb::WriteBuffer, std::__1::allocator<yb::WriteBuffer>>::__swap_out_circular_buffer(this=0x000024ab6d831d68, __v=0x00007f0a7e267878) at vector:1035:22
    frame #10: 0x0000557620413f7b yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] void std::__1::vector<yb::WriteBuffer, std::__1::allocator<yb::WriteBuffer>>::__emplace_back_slow_path<int>(this=0x000024ab6d831d68, __args=<unavailable>) at vector:1662:5
    frame #11: 0x0000557620413eea yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] yb::WriteBuffer& std::__1::vector<yb::WriteBuffer, std::__1::allocator<yb::WriteBuffer>>::emplace_back<int>(this=0x000024ab6d831d68, __args=<unavailable>) at vector:1681:9
    frame #12: 0x0000557620413eb6 yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse() [inlined] yb::tserver::PgClientSession::SaveData(this=0x000024ab6d831b40, buffer=0x00007f0a7e2678c0, sidecars=0x000024ac15e86510) at pg_client_session.cc:1720:17
    frame #13: 0x0000557620413eb6 yb-server`yb::tserver::(anonymous namespace)::SharedExchangeQuery::SendResponse(this=0x000024ac15e863a0) at pg_client_session.cc:580:50
    frame #14: 0x000055762040e91f yb-server`yb::tserver::(anonymous namespace)::PerformData::FlushDone(this=0x000024ac15e863a0, flush_status=<unavailable>) at pg_client_session.cc:418:5
    frame #15: 0x00005576204133a5 yb-server`boost::detail::function::void_function_obj_invoker1<yb::Status yb::tserver::PgClientSession::DoPerform<std::__1::shared_ptr<yb::tserver::(anonymous namespace)::SharedExchangeQuery>>(std::__1::shared_ptr<yb::tserver::(anonymous namespace)::SharedExchangeQuery> const&, std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>, yb::rpc::RpcContext*)::'lambda'(yb::client::FlushStatus*), void, yb::client::FlushStatus*>::invoke(boost::detail::function::function_buffer&, yb::client::FlushStatus*) [inlined] yb::Status yb::tserver::PgClientSession::DoPerform<std::__1::shared_ptr<yb::tserver::(anonymous namespace)::SharedExchangeQuery>>(this=0x000024ab58699d80, flush_status=<unavailable>)::SharedExchangeQuery> const&, std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>, yb::rpc::RpcContext*)::'lambda'(yb::client::FlushStatus*)::operator()(yb::client::FlushStatus*) const at pg_client_session.cc:1243:11
    frame #16: 0x000055762041333f yb-server`boost::detail::function::void_function_obj_invoker1<yb::Status yb::tserver::PgClientSession::DoPerform<std::__1::shared_ptr<yb::tserver::(anonymous namespace)::SharedExchangeQuery>>(std::__1::shared_ptr<yb::tserver::(anonymous namespace)::SharedExchangeQuery> const&, std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>, yb::rpc::RpcContext*)::'lambda'(yb::client::FlushStatus*), void, yb::client::FlushStatus*>::invoke(function_obj_ptr=<unavailable>, a0=0x00007f0a7e267cb8) at function_template.hpp:158:11
    frame #17: 0x000055761efcf190 yb-server`yb::client::(anonymous namespace)::BatcherFlushDone(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig) [inlined] boost::function1<void, yb::client::FlushStatus*>::operator(this=0x00007f0a7e267bc8, a0=0x00007f0a7e267cb8)(yb::client::FlushStatus*) const at function_template.hpp:763:14
    frame #18: 0x000055761efcf16b yb-server`yb::client::(anonymous namespace)::BatcherFlushDone(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig) [inlined] yb::client::(anonymous namespace)::MoveErrorsAndRunCallback(done_batcher=std::__1::shared_ptr<yb::client::internal::Batcher>::element_type @ 0x000024ab7784de18, errors=yb::client::CollectedErrors @ 0x00007f0a7e267c50, callback=yb::client::FlushCallback @ 0x00007f0a7e267bc8, status=0x000024ab7784de68)>, yb::Status const&) at session.cc:182:3
    frame #19: 0x000055761efcefbe yb-server`yb::client::(anonymous namespace)::BatcherFlushDone(done_batcher=std::__1::shared_ptr<yb::client::internal::Batcher>::element_type @ 0x000024ab7784de18, s=0x000024ab7784de68, callback=<unavailable>, batcher_config=<unavailable>)>, yb::client::YBSession::BatcherConfig) at session.cc:195:5
    frame #20: 0x000055761efd0a71 yb-server`boost::detail::function::void_function_obj_invoker1<std::__1::__bind<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher> const&, std::__1::placeholders::__ph<1> const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig&>, void, yb::Status const&>::invoke(boost::detail::function::function_buffer&, yb::Status const&) [inlined] decltype(__f=0x000024ab31937680, __args=<unavailable>, __args=<unavailable>, __args=0x000024ab31937698, __args=0x000024ab319376b8)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig)>()(std::declval<std::__1::shared_ptr<yb::client::internal::Batcher>&>(), std::declval<yb::Status const&>(), std::declval<boost::function<void (yb::client::FlushStatus*)>&>(), std::declval<yb::client::YBSession::BatcherConfig&>())) std::__1::__invoke[abi:ue170006]<void (*&)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher>&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>&, yb::client::YBSession::BatcherConfig&>(void (*&)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher>&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>&, yb::client::YBSession::BatcherConfig&) at invoke.h:340:25
    frame #21: 0x000055761efd0a32 yb-server`boost::detail::function::void_function_obj_invoker1<std::__1::__bind<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher> const&, std::__1::placeholders::__ph<1> const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig&>, void, yb::Status const&>::invoke(boost::detail::function::function_buffer&, yb::Status const&) [inlined] std::__1::__bind_return<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::tuple<std::__1::shared_ptr<yb::client::internal::Batcher>, std::__1::placeholders::__ph<1>, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig>, std::__1::tuple<yb::Status const&>, __is_valid_bind_return<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::tuple<std::__1::shared_ptr<yb::client::internal::Batcher>, std::__1::placeholders::__ph<1>, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig>, std::__1::tuple<yb::Status const&>>::value>::type std::__1::__apply_functor[abi:ue170006]<void (__f=0x000024ab31937680, __bound_args=<unavailable>, (null)=<unavailable>, __args=<unavailable>)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::tuple<std::__1::shared_ptr<yb::client::internal::Batcher>, std::__1::placeholders::__ph<1>, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig>, 0ul, 1ul, 2ul, 3ul, std::__1::tuple<yb::Status const&>>(void (*&)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::tuple<std::__1::shared_ptr<yb::client::internal::Batcher>, std::__1::placeholders::__ph<1>, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig>&, std::__1::__tuple_indices<0ul, 1ul, 2ul, 3ul>, std::__1::tuple<yb::Status const&>&&) at bind.h:260:12
    frame #22: 0x000055761efd0a32 yb-server`boost::detail::function::void_function_obj_invoker1<std::__1::__bind<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher> const&, std::__1::placeholders::__ph<1> const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig&>, void, yb::Status const&>::invoke(boost::detail::function::function_buffer&, yb::Status const&) [inlined] std::__1::__bind_return<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::tuple<std::__1::shared_ptr<yb::client::internal::Batcher>, std::__1::placeholders::__ph<1>, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig>, std::__1::tuple<yb::Status const&>, __is_valid_bind_return<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::tuple<std::__1::shared_ptr<yb::client::internal::Batcher>, std::__1::placeholders::__ph<1>, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig>, std::__1::tuple<yb::Status const&>>::value>::type std::__1::__bind<void (this=0x000024ab31937680, __args=<unavailable>)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher> const&, std::__1::placeholders::__ph<1> const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig&>::operator()[abi:ue170006]<yb::Status const&>(yb::Status const&) at bind.h:292:20
    frame #23: 0x000055761efd09a3 yb-server`boost::detail::function::void_function_obj_invoker1<std::__1::__bind<void (*)(std::__1::shared_ptr<yb::client::internal::Batcher> const&, yb::Status const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig), std::__1::shared_ptr<yb::client::internal::Batcher> const&, std::__1::placeholders::__ph<1> const&, boost::function<void (yb::client::FlushStatus*)>, yb::client::YBSession::BatcherConfig&>, void, yb::Status const&>::invoke(function_obj_ptr=<unavailable>, a0=0x000024ab7784de68) at function_template.hpp:158:11
    frame #24: 0x000055761ef17628 yb-server`yb::client::internal::Batcher::Run() [inlined] boost::function1<void, yb::Status const&>::operator(this=<unavailable>, a0=<unavailable>)(yb::Status const&) const at function_template.hpp:763:14
    frame #25: 0x000055761ef1761d yb-server`yb::client::internal::Batcher::Run(this=0x000024ab7784de18) at batcher.cc:199:3
    frame #26: 0x000055761ef19986 yb-server`yb::client::internal::Batcher::FlushFinished() [inlined] yb::client::internal::Batcher::RunCallback(this=0x000024ab7784de18) at batcher.cc:208:5
    frame #27: 0x000055761ef1976e yb-server`yb::client::internal::Batcher::FlushFinished(this=0x000024ab7784de18) at batcher.cc:195:3
    frame #28: 0x000055761ef0f7a6 yb-server`yb::client::internal::AsyncRpc::Finished(yb::Status const&) [inlined] yb::client::internal::Batcher::Flushed(this=0x000024ab7784de18, ops=<unavailable>, status=0x00007f0a7e267f60, flush_extra_result=FlushExtraResult @ 0x00007f0a7e267f10) at batcher.cc:704:5
    frame #29: 0x000055761ef0f712 yb-server`yb::client::internal::AsyncRpc::Finished(this=0x000024ab09a1e718, status=0x00007f0a7e267fa0) at async_rpc.cc:256:15
    frame #30: 0x000055761ef171b0 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator()() [inlined] decltype(__f=<unavailable>, __a0=<unavailable>, __args=<unavailable>).*std::declval<void (yb::client::internal::AsyncRpc::*&)(yb::Status const&)>()(std::declval<yb::Status::OK&>())) std::__1::__invoke[abi:ue170006]<void (yb::client::internal::AsyncRpc::*&)(yb::Status const&), yb::client::internal::ReadRpc*&, yb::Status::OK&, void>(void (yb::client::internal::AsyncRpc::*&)(yb::Status const&), yb::client::internal::ReadRpc*&, yb::Status::OK&) at invoke.h:308:25
    frame #31: 0x000055761ef17189 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator()() [inlined] std::__1::__bind_return<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), std::__1::tuple<yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::tuple<>, __is_valid_bind_return<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), std::__1::tuple<yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::tuple<>>::value>::type std::__1::__apply_functor[abi:ue170006]<void (__f=<unavailable>, __bound_args=<unavailable>, (null)=<unavailable>, __args=<unavailable>)(yb::Status const&), std::__1::tuple<yb::client::internal::ReadRpc*, yb::Status::OK>, 0ul, 1ul, std::__1::tuple<>>(void (yb::client::internal::AsyncRpc::*&)(yb::Status const&), std::__1::tuple<yb::client::internal::ReadRpc*, yb::Status::OK>&, std::__1::__tuple_indices<0ul, 1ul>, std::__1::tuple<>&&) at bind.h:260:12
    frame #32: 0x000055761ef17189 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator()() [inlined] std::__1::__bind_return<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), std::__1::tuple<yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::tuple<>, __is_valid_bind_return<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), std::__1::tuple<yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::tuple<>>::value>::type std::__1::__bind<void (this=<unavailable>)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>::operator()[abi:ue170006]<>() at bind.h:292:20
    frame #33: 0x000055761ef17189 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator()() [inlined] decltype(__f=<unavailable>)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>&>()()) std::__1::__invoke[abi:ue170006]<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>&>(std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>&) at invoke.h:340:25
    frame #34: 0x000055761ef17189 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator()() [inlined] void std::__1::__invoke_void_return_wrapper<void, true>::__call[abi:ue170006]<std::__1::__bind<void (__args=<unavailable>)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>&>(std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>&) at invoke.h:415:5
    frame #35: 0x000055761ef17189 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator()() [inlined] std::__1::__function::__alloc_func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator(this=<unavailable>)[abi:ue170006]() at function.h:192:16
    frame #36: 0x000055761ef17189 yb-server`std::__1::__function::__func<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>, std::__1::allocator<std::__1::__bind<void (yb::client::internal::AsyncRpc::*)(yb::Status const&), yb::client::internal::ReadRpc*, yb::Status::OK>>, void ()>::operator(this=<unavailable>)() at function.h:363:12
    frame #37: 0x000055761ffe89ea yb-server`yb::rpc::OutboundCall::InvokeCallbackSync(std::__1::optional<std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>>) [inlined] std::__1::__function::__value_func<void ()>::operator(this=0x000024ac8fbd0990)[abi:ue170006]() const at function.h:517:16
    frame #38: 0x000055761ffe89e4 yb-server`yb::rpc::OutboundCall::InvokeCallbackSync(std::__1::optional<std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>>) [inlined] std::__1::function<void ()>::operator(this=0x000024ac8fbd0990)() const at function.h:1168:12
    frame #39: 0x000055761ffe89e4 yb-server`yb::rpc::OutboundCall::InvokeCallbackSync(this=0x000024ac8fbd0900, now_optional=<unavailable>) at outbound_call.cc:472:3
    frame #40: 0x00005576200c5b43 yb-server`yb::rpc::(anonymous namespace)::Worker::Execute(this=0x000024ab26506ee0) at thread_pool.cc:115:15
    frame #41: 0x0000557620935d03 yb-server`yb::Thread::SuperviseThread(void*) [inlined] std::__1::__function::__value_func<void ()>::operator(this=0x000024abd7d38a80)[abi:ue170006]() const at function.h:517:16
    frame #42: 0x0000557620935ced yb-server`yb::Thread::SuperviseThread(void*) [inlined] std::__1::function<void ()>::operator(this=0x000024abd7d38a80)() const at function.h:1168:12
    frame #43: 0x0000557620935ced yb-server`yb::Thread::SuperviseThread(arg=0x000024abd7d38a20) at thread.cc:866:3
    frame #44: 0x00007f0d5549a1ca libpthread.so.0`start_thread + 234
    frame #45: 0x00007f0d556ebe73 libc.so.6`__clone + 67

Test steps:

Profile (1)

Issue Type

kind/bug

Warning: Please confirm that this issue does not contain any sensitive information

  • I confirm this issue does not contain any sensitive information.
@shamanthchandra-yb shamanthchandra-yb added area/docdb YugabyteDB core features priority/high High Priority status/awaiting-triage Issue awaiting triage labels Sep 17, 2024
@yugabyte-ci yugabyte-ci added the kind/bug This issue is a bug label Sep 17, 2024
@yugabyte-ci yugabyte-ci changed the title [DocDB] Crash in WriteBuffer::Take or SharedExchangeQuery::SendResponse() [DocDB] Tserver Crash in WriteBuffer::Take or SharedExchangeQuery::SendResponse() Sep 17, 2024
spolitov added a commit that referenced this issue Sep 19, 2024
Summary:
WriteBuffer move ctor does not initialize consumption_.
So segmentation fault could happen when WriteBuffer is constucted over non zeroed memory.
Jira: DB-12860

Test Plan: WriteBufferTest.MoveCtor

Reviewers: rthallam, esheng

Reviewed By: esheng

Subscribers: ybase

Differential Revision: https://phorge.dev.yugabyte.com/D38158
@yugabyte-ci yugabyte-ci removed the status/awaiting-triage Issue awaiting triage label Sep 19, 2024
foucher added a commit that referenced this issue Sep 20, 2024
Summary:
 6b34652 [doc] Update badge colors (#23985)
 6dcfce6 [PLAT-15297][dr] GET /configs fails with java.lang.IllegalStateException: DrConfig iTest-dr(uuid) does not have any corresponding xCluster config
 7995311 [#23695] docdb: Improve help strings for tablet replica limit flags.
 7659151 [DOC-479] Voyager 1.8.1 updates (#23983)
 56c9cc9 [PLAT-15282]: fix NPE on k8s operator backup/restore status update
 c8776b5 [docs] SSL/TLS configuration with hashicorp vault YSQL plugin (#23979)
 Excluded: d3dd4f7 Bumping version to 2.25.0.0 on branch master
 Excluded: 0dbe7d6 [#23312] YSQL: Fix backup/restore for colocated tables without tablespace information.
 2beb872 [#23786] YSQL: add yb_make_next_ddl_statement_nonincrementing to YbDbAdminVariables
 28d0d8e [#24011] build: fix ./yb_build.sh --gcc13
 9feb6e8 [#24012] YSQL: Replace deprecated function shared_ptr::unique to fix macos compiler error
 2cc1480 [PLAT-15349] Fix update_lb_config automated NLB updates
 af4c46d [#23741] docdb: Add parameter to run PITR tests with clone instead
 0103dfc [PLAT-14459] Continuous backups for s3
 e6bb890 [PLAT-15192] [PLAT-15191] Document node-agent-provision.yaml
 1552321 [PLAT-15205] YBA callhome improvements
 ba6acbd [PLAT-15342] Install Node Agent as root level unit for ynp
 2478a50 [PLAT-13058] Remove references to public key filepath, since we don't need ssh keys for node agent based provisioning
 aa14f76 [#23975] YSQL, ASH: Fix TestYbAsh#testPgAuxInfo
 885b72b [#23960] DocDB: Fix WriteBuffer crash in move ctor
 Excluded: f4a002a [#23314] YSQL: Fix variable name to yb_ for ATPrepSetTableSpace
 29c56ed [PLAT-15369][YBA CLI]Backup list-increments doesn't support pretty/json outputs
 784160c [PLAT-15370][YBA CLI]backup list table output contains base_backup_uuid and backup_uuid
 b32222d [PLAT-15280][PLAT-14753] - Pg parity improvements and other ui fixes
 c6521cf [PLAT-15368][YBA CLI]Backup list print "No more backup present" after printing all the backups in -o pretty/json

- pg_catalog_version-test.cc
   - NonIncrementingDDLMode: YB master commit 2beb872 sets the role to yb_db_admin, which due to new behavior in upstream PG commit b073c3ccd06e4cb845e121387a43faa8c68a7b62 (documented in https://www.postgresql.org/docs/15/ddl-schemas.html#DDL-SCHEMAS-PATTERNS) causes the following unintended test failure: ERROR:  permission denied for schema public. Add a workaround to grant create permission to the role now set.

Test Plan: Jenkins: urgent, rebase: pg15-cherrypicks

Reviewers: jason, jenkins-bot

Differential Revision: https://phorge.dev.yugabyte.com/D38220
spolitov added a commit that referenced this issue Sep 28, 2024
Summary:
WriteBuffer move ctor does not initialize consumption_.
So segmentation fault could happen when WriteBuffer is constucted over non zeroed memory.
Jira: DB-12860

Original commit: 885b72b/D38158

Test Plan: WriteBufferTest.MoveCtor

Reviewers: rthallam, esheng

Reviewed By: rthallam

Subscribers: ybase

Differential Revision: https://phorge.dev.yugabyte.com/D38302
spolitov added a commit that referenced this issue Sep 28, 2024
Summary:
WriteBuffer move ctor does not initialize consumption_.
So segmentation fault could happen when WriteBuffer is constucted over non zeroed memory.
Jira: DB-12860

Original commit: 885b72b/D38158

Test Plan: WriteBufferTest.MoveCtor

Reviewers: rthallam, esheng

Reviewed By: rthallam

Subscribers: ybase

Differential Revision: https://phorge.dev.yugabyte.com/D38303
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants