You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "chaojizhuoge (via GitHub)" <gi...@apache.org> on 2023/05/25 02:16:09 UTC

[GitHub] [rocketmq-clients] chaojizhuoge opened a new issue, #521: [Bug] PushConsumer Crash When dtor

chaojizhuoge opened a new issue, #521:
URL: https://github.com/apache/rocketmq-clients/issues/521

   ### Before Creating the Bug Report
   
   - [X] I found a bug, not just asking a question, which should be created in [GitHub Discussions](https://github.com/apache/rocketmq-clients/discussions).
   
   - [X] I have searched the [GitHub Issues](https://github.com/apache/rocketmq-clients/issues) and [GitHub Discussions](https://github.com/apache/rocketmq-clients/discussions)  of this repository and believe that this is not a duplicate.
   
   - [X] I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
   
   
   ### Programming Language of the Client
   
   C++
   
   ### Runtime Platform Environment
   
   OS: Windows Server 2012 / SUSE Linux Enterprise Server 12 SP5
   
   ### RocketMQ Version of the Client/Server
   
   version: rocketmq-clients cpp 5.0.0
   
   ### Run or Compiler Version
   
   _No response_
   
   ### Describe the Bug
   
   [https://github.com/apache/rocketmq-clients/issues/421#issue-1633803209](url)
   
   Same Problem with this closed issue : second coredump
   
   ```
   (gdb) bt
   #0  0x00007fc706eafe5c in __pthread_kill_implementation () from /lib64/libc.so.6
   #1  0x00007fc706e5fa76 in raise () from /lib64/libc.so.6
   #2  0x00007fc706e497fc in abort () from /lib64/libc.so.6
   #3  0x00007fc7070a2b97 in __gnu_cxx::__verbose_terminate_handler() [clone .cold] () from /lib64/libstdc++.so.6
   #4  0x00007fc7070ae48c in __cxxabiv1::__terminate(void (*)()) () from /lib64/libstdc++.so.6
   #5  0x00007fc7070ae4f7 in std::terminate() () from /lib64/libstdc++.so.6
   #6  0x000000000047aafd in std::thread::~thread() ()
   #7  0x00000000005b45ff in void std::_Destroy<std::thread>(std::thread*) ()
   #8  0x00000000005b3b85 in void std::_Destroy_aux<false>::__destroy<std::thread*>(std::thread*, std::thread*) ()
   #9  0x00000000005b2686 in void std::_Destroy<std::thread*>(std::thread*, std::thread*) ()
   #10 0x00000000005b048f in void std::_Destroy<std::thread*, std::thread>(std::thread*, std::thread*, std::allocator<std::thread>&) ()
   #11 0x00000000005aeffd in std::vector<std::thread, std::allocator<std::thread> >::~vector() ()
   #12 0x00000000005c504c in rocketmq::ThreadPoolImpl::~ThreadPoolImpl() ()
   #13 0x00000000005c5094 in rocketmq::ThreadPoolImpl::~ThreadPoolImpl() ()
   #14 0x00000000004c885a in std::default_delete<rocketmq::ThreadPool>::operator()(rocketmq::ThreadPool*) const ()
   #15 0x00000000004c8230 in std::unique_ptr<rocketmq::ThreadPool, std::default_delete<rocketmq::ThreadPool> >::~unique_ptr() ()
   #16 0x00000000004c9d62 in rocketmq::ConsumeMessageServiceImpl::~ConsumeMessageServiceImpl() ()
   #17 0x000000000049e1e9 in void std::_Destroy<rocketmq::ConsumeMessageServiceImpl>(rocketmq::ConsumeMessageServiceImpl*) ()
   #18 0x000000000049dff0 in void std::allocator_traits<std::allocator<void> >::destroy<rocketmq::ConsumeMessageServiceImpl>(std::allocator<void>&, rocketmq::ConsumeMessageServiceImpl*) ()
   #19 0x000000000049d6db in std::_Sp_counted_ptr_inplace<rocketmq::ConsumeMessageServiceImpl, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
   #20 0x000000000041f54f in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use() ()
   #21 0x000000000041f528 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold() ()
   #22 0x000000000041ee68 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
   #23 0x000000000041f6f7 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
   #24 0x000000000047c8fc in std::__shared_ptr<rocketmq::ConsumeMessageService, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
   #25 0x000000000047c918 in std::shared_ptr<rocketmq::ConsumeMessageService>::~shared_ptr() ()
   #26 0x000000000046fb82 in rocketmq::PushConsumerImpl::~PushConsumerImpl() ()
   #27 0x000000000046f0bf in void std::_Destroy<rocketmq::PushConsumerImpl>(rocketmq::PushConsumerImpl*) ()
   #28 0x000000000046eb5e in void std::allocator_traits<std::allocator<void> >::destroy<rocketmq::PushConsumerImpl>(std::allocator<void>&, rocketmq::PushConsumerImpl*) ()
   #29 0x000000000046aa93 in std::_Sp_counted_ptr_inplace<rocketmq::PushConsumerImpl, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() ()
   #30 0x000000000041f54f in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use() ()
   #31 0x000000000041f528 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold() ()
   #32 0x000000000041ee68 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() ()
   #33 0x000000000041f6f7 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() ()
   #34 0x000000000041f0d8 in std::__shared_ptr<rocketmq::PushConsumerImpl, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() ()
   #35 0x000000000041f0f4 in std::shared_ptr<rocketmq::PushConsumerImpl>::~shared_ptr() ()
   #36 0x000000000041f4ae in rocketmq::PushConsumer::~PushConsumer() ()
   #37 0x000000000041ded3 in test() ()
   #38 0x000000000041e0be in main ()
   (gdb)
   ```
   
   ### Steps to Reproduce
   
   Construct a PushConsumer, it happens when dtor
   
   ### What Did You Expect to See?
   
   No Crash
   
   ### What Did You See Instead?
   
   Crash
   
   ### Additional Context
   
   _No response_


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [rocketmq-clients] github-actions[bot] closed issue #521: [Bug] [C++] cpp client PushConsumer Crash When dtor

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] closed issue #521: [Bug] [C++] cpp client PushConsumer Crash When dtor
URL: https://github.com/apache/rocketmq-clients/issues/521


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [rocketmq-clients] chaojizhuoge commented on issue #521: [Bug] PushConsumer Crash When dtor

Posted by "chaojizhuoge (via GitHub)" <gi...@apache.org>.
chaojizhuoge commented on issue #521:
URL: https://github.com/apache/rocketmq-clients/issues/521#issuecomment-1562164523

   A same issue #421  has been closed so I open a new one
   Here's the bug I found
   [https://github.com/apache/rocketmq-clients/issues/421#issuecomment-1562124468](url)
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [rocketmq-clients] github-actions[bot] commented on issue #521: [Bug] [C++] cpp client PushConsumer Crash When dtor

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on issue #521:
URL: https://github.com/apache/rocketmq-clients/issues/521#issuecomment-1612267506

   This issue was closed because it has been inactive for 3 days since being marked as stale.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [rocketmq-clients] github-actions[bot] commented on issue #521: [Bug] [C++] cpp client PushConsumer Crash When dtor

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on issue #521:
URL: https://github.com/apache/rocketmq-clients/issues/521#issuecomment-1605791225

   This issue is stale because it has been open for 30 days with no activity. It will be closed in 3 days if no further activity occurs.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [Bug] [C++] cpp client PushConsumer Crash When dtor [rocketmq-clients]

Posted by "lizhanhui (via GitHub)" <gi...@apache.org>.
lizhanhui closed issue #521: [Bug] [C++] cpp client PushConsumer Crash When dtor
URL: https://github.com/apache/rocketmq-clients/issues/521


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] [Bug] [C++] cpp client PushConsumer Crash When dtor [rocketmq-clients]

Posted by "lizhanhui (via GitHub)" <gi...@apache.org>.
lizhanhui commented on issue #521:
URL: https://github.com/apache/rocketmq-clients/issues/521#issuecomment-1752008196

   > A same issue #421 has been closed so I open a new one Here's the bug I found [https://github.com/apache/rocketmq-clients/issues/421#issuecomment-1562124468](url)
   > 
   > > Here's the problem:
   > > ```
   > > void ConsumeMessageServiceImpl::shutdown() {
   > >   State expected = State::STOPPING;
   > >   if (state_.compare_exchange_strong(expected, State::STOPPED, std::memory_order_relaxed)) {
   > >     pool_->shutdown();
   > >   }
   > > }
   > > ```
   > > 
   > > 
   > >     
   > >       
   > >     
   > > 
   > >       
   > >     
   > > 
   > >     
   > >   
   > > There's no STOPPING state for ConsumeMessageServiceImpl, so the `pool_->shutdown();` will never be executed.
   > > Threads inside pool_ would be joinable when dtor, which causes the std::terminate.
   > > `State expected = State::STARTING;` will fix this
   
   You are right, the state of the ConsumeMessageServiceImpl is out of sync with lifecycle.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org