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

IPMI: IPL: phosphor-ipmi-host.service SEGV core dumps during killall or stop ipmid #191

Open
lxwinspur opened this issue Jul 28, 2023 · 1 comment

Comments

@lxwinspur
Copy link
Contributor

This can be recreated by stopping the ipmi service with command systemctl stop phosphor-ipmi-host or killall. It appears the ipmi app is not handling signals gracefully:

journalctl

root@fp5280g2:/lib/systemd/system# systemctl stop phosphor-ipmi-host.service
Apr 03 21:00:42 fp5280g2 ipmid[343]: Command in process, no attention
Apr 03 21:00:42 fp5280g2 ipmid[343]: Command in process, no attention
Apr 03 21:00:42 fp5280g2 systemd[1]: Stopping Phosphor MBOX Daemon...
Apr 03 21:00:42 fp5280g2 systemd[1]: mboxd.service: Deactivated successfully.
Apr 03 21:00:42 fp5280g2 systemd[1]: Stopped Phosphor MBOX Daemon.
Apr 03 21:00:42 fp5280g2 ipmid[343]: Received signal; quitting
Apr 03 21:00:42 fp5280g2 systemd[1]: Stopping Phosphor Inband IPMI...
Apr 03 21:00:43 fp5280g2 systemd[1]: Created slice Slice /system/systemd-coredump.
Apr 03 21:00:43 fp5280g2 systemd[1]: Started Process Core Dump (PID 396/UID 0).
root@fp5280g2:/lib/systemd/system# Apr 03 21:00:44 fp5280g2 systemd-coredump[397]: elfutils disabled, parsing ELF objects not supported
Apr 03 21:00:44 fp5280g2 systemd-coredump[397]: [LNK] Process 343 (ipmid) of user 0 dumped core.
Apr 03 21:00:44 fp5280g2 systemd[1]: phosphor-ipmi-host.service: Main process exited, code=dumped, status=11/SEGV
Apr 03 21:00:44 fp5280g2 systemd[1]: phosphor-ipmi-host.service: Failed with result 'core-dump'.
Apr 03 21:00:44 fp5280g2 systemd[1]: Stopped Phosphor Inband IPMI.
Apr 03 21:00:44 fp5280g2 systemd[1]: [email protected]: Deactivated successfully.

core dump file:
core.ipmid.tar.gz

Parsed coreDump file

Core was generated by `ipmid'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x761fe2e0 in ?? ()
(gdb) bt
#0  0x761fe2e0 in ?? ()
#1  0x004f4d9c in std::_Function_base::~_Function_base (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13.1.1/bits/std_function.h:244
#2  std::function<void (std::pair<unsigned char, unsigned char>, bool)>::~function() (this=<optimized out>, this=<optimized out>)
    at /usr/include/c++/13.1.1/bits/std_function.h:334
#3  std::_Head_base<1u, std::function<void (std::pair<unsigned char, unsigned char>, bool)>, false>::~_Head_base() (this=<optimized out>, this=<optimized out>)
    at /usr/include/c++/13.1.1/tuple:188
#4  std::_Tuple_impl<1u, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >::~_Tuple_impl() (this=<optimized out>, this=<optimized out>)
    at /usr/include/c++/13.1.1/tuple:489
#5  std::_Tuple_impl<0u, std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >::~_Tuple_impl() (
    this=<optimized out>, this=<optimized out>) at /usr/include/c++/13.1.1/tuple:259
#6  std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >::~tuple() (this=<optimized out>, 
    this=<optimized out>) at /usr/include/c++/13.1.1/tuple:1232
#7  std::destroy_at<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > >(std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*) (__location=0x102422c) at /usr/include/c++/13.1.1/bits/stl_construct.h:88
#8  std::_Destroy<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > >(std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*) (__pointer=0x102422c) at /usr/include/c++/13.1.1/bits/stl_construct.h:149
#9  std::_Destroy_aux<false>::__destroy<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*>(std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*) (__last=<optimized out>, __first=0x102422c) at /usr/include/c++/13.1.1/bits/stl_construct.h:163
#10 std::_Destroy<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*>(std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*) (__last=<optimized out>, __first=<optimized out>) at /usr/include/c++/13.1.1/bits/stl_construct.h:196
#11 std::_Destroy<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > >(std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*, std::allocator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > >&) (__last=<optimized out>, 
    __first=<optimized out>) at /usr/include/c++/13.1.1/bits/alloc_traits.h:947
#12 std::deque<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::allocator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > > >::_M_destroy_data_aux(std::_Deque_iterator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >&, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*>, std::_Deque_iterator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >&, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*>) (this=<optimized out>, __last=..., __first=...) at /usr/include/c++/13.1.1/bits/deque.tcc:875
--Type <RET> for more, q to quit, c to continue without paging--
#13 std::deque<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::allocator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > > >::_M_destroy_data(std::_Deque_iterator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >&, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*>, std::_Deque_iterator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >&, std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >*>, std::allocator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > > const&) (this=0x1024184, __first=..., __last=...) at /usr/include/c++/13.1.1/bits/stl_deque.h:2091
#14 std::deque<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::allocator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > > >::~deque() [clone .isra.0] (this=<optimized out>, 
    this=<optimized out>) at /usr/include/c++/13.1.1/bits/stl_deque.h:1028
#15 0x004d5acc in std::queue<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::deque<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> >, std::allocator<std::tuple<std::pair<unsigned char, unsigned char>, std::function<void (std::pair<unsigned char, unsigned char>, bool)> > > > >::~queue() (this=<optimized out>, this=<optimized out>)
    at /usr/include/c++/13.1.1/bits/stl_queue.h:96
#16 phosphor::host::command::Manager::~Manager (this=<optimized out>, this=<optimized out>)
    at /usr/src/debug/phosphor-ipmi-host/1.0+gitAUTOINC+cbfa6e1d2b-r1/host-cmd-manager.hpp:25
#17 std::default_delete<phosphor::host::command::Manager>::operator() (this=<optimized out>, __ptr=0x1024180) at /usr/include/c++/13.1.1/bits/unique_ptr.h:99
#18 std::default_delete<phosphor::host::command::Manager>::operator() (__ptr=0x1024180, this=<optimized out>) at /usr/include/c++/13.1.1/bits/unique_ptr.h:93
#19 std::unique_ptr<phosphor::host::command::Manager, std::default_delete<phosphor::host::command::Manager> >::~unique_ptr (this=<optimized out>, this=<optimized out>)
    at /usr/include/c++/13.1.1/bits/unique_ptr.h:404
#20 0x76365700 in __run_exit_handlers (status=15, listp=0x7648a370 <__exit_funcs>, run_list_atexit=false, run_list_atexit@entry=true, run_dtors=run_dtors@entry=true)
    at exit.c:108
#21 0x7636585c in __GI_exit (status=<optimized out>) at exit.c:138
#22 0x004c4818 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/phosphor-ipmi-host/1.0+gitAUTOINC+cbfa6e1d2b-r1/ipmid-new.cpp:893
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant