Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

SIGSEGV during runtime in start_block #7436

Closed
fproulx-dfuse opened this issue May 30, 2019 · 1 comment
Closed

SIGSEGV during runtime in start_block #7436

fproulx-dfuse opened this issue May 30, 2019 · 1 comment
Assignees

Comments

@fproulx-dfuse
Copy link

Using 1.8rc2, we have seen a few (at least two) occurrences of SIGSEGV, Seg Fault leading to process terminating with a Core Dump.

Based on the core dump, we could get the backtrace from the crashed thread:

(gdb) bt
Core was generated by `/opt/eosio/bin/nodeos --config-dir=/etc/nodeos --data-dir=/nodeos-data --pause-'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x0000000001097d4a in Platform::createEvent() ()
[Current thread is 1 (Thread 0x7fb626e05980 (LWP 21))]
(gdb) bt
#0  0x0000000001097d4a in Platform::createEvent() ()
#1  <signal handler called>
#2  0x0000000000961b39 in std::__1::map<fc::sha256, std::__1::shared_ptr<eosio::chain::transaction_metadata>, eosio::chain::sha256_less, std::__1::allocator<std::__1::pair<fc::sha256 const, std::__1::shared_ptr<eosio::chain::transaction_metadata> > > >::erase(fc::sha256 const&) ()
#3  0x000000000094c997 in eosio::producer_plugin_impl::start_block() ()
#4  0x000000000094132c in eosio::producer_plugin_impl::schedule_production_loop() ()
#5  0x000000000096ff31 in eosio::producer_plugin_impl::on_incoming_block(std::__1::shared_ptr<eosio::chain::signed_block> const&) ()
#6  0x00000000007e270e in boost::signals2::detail::slot_call_iterator_t<boost::signals2::detail::variadic_slot_invoker<boost::signals2::detail::void_type, std::__1::shared_ptr<eosio::chain::signed_block> const&>, std::__1::__list_iterator<boost::shared_ptr<boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (std::__1::shared_ptr<eosio::chain::signed_block> const&), boost::function<void (std::__1::shared_ptr<eosio::chain::signed_block> const&)> >, boost::signals2::mutex> >, void*>, boost::signals2::detail::connection_body<std::__1::pair<boost::signals2::detail::slot_meta_group, boost::optional<int> >, boost::signals2::slot<void (std::__1::shared_ptr<eosio::chain::signed_block> const&), boost::function<void (std::__1::shared_ptr<eosio::chain::signed_block> const&)> >, boost::signals2::mutex> >::dereference() const ()
#7  0x00000000007f33e8 in boost::signals2::detail::signal_impl<void (std::__1::shared_ptr<eosio::chain::signed_block> const&), appbase::first_provider_policy<void (std::__1::shared_ptr<eosio::chain::signed_block> const&)>, int, std::__1::less<int>, boost::function<void (std::__1::shared_ptr<eosio::chain::signed_block> const&)>, boost::function<void (boost::signals2::connection const&, std::__1::shared_ptr<eosio::chain::signed_block> const&)>, boost::signals2::mutex>::operator()(std::__1::shared_ptr<eosio::chain::signed_block> const&) ()
#8  0x0000000000646c4f in eosio::net_plugin_impl::handle_message(std::__1::shared_ptr<eosio::connection> const&, std::__1::shared_ptr<eosio::chain::signed_block> const&) ()
#9  0x000000000066ae5e in eosio::msg_handler::operator()(eosio::chain::signed_block&&) const ()
#10 0x000000000063bb91 in eosio::net_plugin_impl::process_next_message(std::__1::shared_ptr<eosio::connection> const&, unsigned int) ()
#11 0x0000000000661f98 in eosio::net_plugin_impl::start_read_message(std::__1::shared_ptr<eosio::connection> const&)::$_7::operator()(boost::system::error_code, unsigned long) const::{lambda()#1}::operator()() const ()
#12 0x000000000044f07a in appbase::application::exec() ()
#13 0x0000000000444141 in main ()
(gdb) disas/s
Dump of assembler code for function _ZN8Platform11createEventEv:
   0x0000000001097d40 <+0>:	push   %rbx
   0x0000000001097d41 <+1>:	sub    $0x10,%rsp
   0x0000000001097d45 <+5>:	mov    $0x58,%edi
************************************************************************
=> 0x0000000001097d4a <+10>:	callq  0x1cce8e0 <_Znwm>
************************************************************************
   0x0000000001097d4f <+15>:	mov    %rax,%rbx
   0x0000000001097d52 <+18>:	xorps  %xmm0,%xmm0
   0x0000000001097d55 <+21>:	movaps %xmm0,0x40(%rax)
   0x0000000001097d59 <+25>:	movaps %xmm0,0x30(%rax)
   0x0000000001097d5d <+29>:	movaps %xmm0,0x20(%rax)
   0x0000000001097d61 <+33>:	movaps %xmm0,0x10(%rax)
   0x0000000001097d65 <+37>:	movaps %xmm0,(%rax)
   0x0000000001097d68 <+40>:	movq   $0x0,0x50(%rax)
   0x0000000001097d70 <+48>:	lea    0x8(%rsp),%rdi
   0x0000000001097d75 <+53>:	callq  0x409c40 <pthread_condattr_init@plt>
@heifner heifner self-assigned this May 30, 2019
@heifner
Copy link
Contributor

heifner commented May 30, 2019

Thanks for the report and stack trace. Very helpful. A fix will be in the final 1.8 release or rc3 whichever happens next.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants