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

multipassd SEGV on removing / launching instances #752

Closed
Saviq opened this issue Apr 29, 2019 · 2 comments
Closed

multipassd SEGV on removing / launching instances #752

Saviq opened this issue Apr 29, 2019 · 2 comments
Labels

Comments

@Saviq
Copy link
Collaborator

Saviq commented Apr 29, 2019

Hoping this gives enough data to dig - going through a dance of:

$ multipass launch http://cdimage.ubuntu.com/ubuntu-core/18/stable/current/ubuntu-core-18-amd64.img.xz
Ctrl^C
$ multipass delete -p
# rinse and repeat

I saw multipassd crashing a couple times, and I managed to get a traceback from one of those, here's a snippet:

#0  0x00007f2d04000ae8 in ?? ()                                                                                                                                                                                                               
No symbol table info available.                                                                                                                                                                                                               
#1  0x0000000000591cac in grpc::internal::WriterInterface<multipass::LaunchReply>::Write (msg=..., this=<optimized out>) at /build/multipass/parts/multipass/src/3rd-party/grpc/include/grpcpp/impl/codegen/sync_stream.h:124                 
No locals.                                                                                                                                                                                                                                    
#2  multipass::Daemon::<lambda(const multipass::VirtualMachineDescription&)>::operator()(const multipass::VirtualMachineDescription &) const (__closure=0x1e779a0, vm_desc=...)                                                               
    at /build/multipass/parts/multipass/src/src/daemon/daemon.cpp:1870                                                                                                                                                                        
        reply = {<google::protobuf::Message> = {<google::protobuf::MessageLite> = {_vptr.MessageLite = 0xcb2d58 <vtable for multipass::LaunchReply+16>}, <No data fields>}, static kIndexInFileMessages = 8, static kLogLineFieldNumber = 6,  
          static kReplyMessageFieldNumber = 8, static kMetricsShowInfoFieldNumber = 5, static kUpdateInfoFieldNumber = 7, static kMetricsPendingFieldNumber = 4, static kVmInstanceNameFieldNumber = 1,                                       
          static kLaunchProgressFieldNumber = 2, static kCreateMessageFieldNumber = 3,                                                                                                                                                        
          _internal_metadata_ = {<google::protobuf::internal::InternalMetadataWithArenaBase<google::protobuf::UnknownFieldSet, google::protobuf::internal::InternalMetadataWithArena>> = {ptr_ = 0x0, static kPtrTagMask = <optimized out>,   
              static kPtrValueMask = <optimized out>}, <No data fields>}, log_line_ = {ptr_ = 0xcd4d40 <google::protobuf::internal::fixed_address_empty_string[abi:cxx11]>}, reply_message_ = {                                               
            ptr_ = 0xcd4d40 <google::protobuf::internal::fixed_address_empty_string[abi:cxx11]>}, metrics_show_info_ = 0x0, update_info_ = 0x0, metrics_pending_ = false, create_oneof_ = {vm_instance_name_ = {ptr_ = 0x1e747c0},            
            launch_progress_ = 0x1e747c0, create_message_ = {ptr_ = 0x1e747c0}}, _cached_size_ = {size_ = {<std::__atomic_base<int>> = {static _S_alignment = 4, _M_i = 0}, <No data fields>}}, _oneof_case_ = {3}}                           
        vm = <optimized out>                                                                                                                                                                                                                  
        future_watcher = <optimized out>                                                                                                                                                                                                      
        start = true                                                                                                                                                                                                                          
        name = {static npos = 18446744073709551615, _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x1e779c8 "fearless-kakapo"}, _M_string_length = 15, {          
            _M_local_buf = "fearless-kakapo", _M_allocated_capacity = 8319104453133296998}}                                                                                                                                                   
        status_promise = 0x7f2d2742c660                                                                                                                                                                                                       
        server = 0x7f2d2742c770                                                                                                                                                                                                               
        this = 0x7ffce35d0780                                                                                                                                                                                                                 
#3  0x00007f2d35a86122 in QObject::event(QEvent*) () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5                                                                                                                 
No symbol table info available.
#4  0x00007f2d35a56991 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5                                                                                    
No symbol table info available.                                                                                                                                                                                                               
#5  0x00007f2d35a5911d in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5                                                                  
No symbol table info available.                                                                                                                                                                                                               
#6  0x00007f2d35ab02c3 in ?? () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5                                                                                                                                      
No symbol table info available.                                                                                                                                                                                                               
#7  0x00007f2d31c39197 in g_main_context_dispatch () from /snap/core/current/lib/x86_64-linux-gnu/libglib-2.0.so.0                                                                                                                            
No symbol table info available.                                                                                                                                                                                                               
#8  0x00007f2d31c393f0 in ?? () from /snap/core/current/lib/x86_64-linux-gnu/libglib-2.0.so.0                                                                                                                                                 
No symbol table info available.                                                                                                                                                                                                               
#9  0x00007f2d31c3949c in g_main_context_iteration () from /snap/core/current/lib/x86_64-linux-gnu/libglib-2.0.so.0                                                                                                                           
No symbol table info available.                                                                                                                                                                                                               
#10 0x00007f2d35aaf8ef in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5                                                              
No symbol table info available.                                                                                                                                                                                                               
#11 0x00007f2d35a549ea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5                                                                                 
No symbol table info available.                                                                                                                                                                                                               
#12 0x00007f2d35a5da84 in QCoreApplication::exec() () from /snap/multipass/758/bin/../usr/lib/x86_64-linux-gnu/libQt5Core.so.5
No symbol table info available.
#13 0x0000000000571e47 in main (argc=5, argv=<optimized out>) at /build/multipass/parts/multipass/src/src/daemon/daemon_main.cpp:123
@Saviq Saviq added the bug label Apr 29, 2019
@gerboland
Copy link
Contributor

I also can get a different stacktrace:

#0  QProcess::state (this=0x0) at io/qprocess.cpp:1756
#1  0x0000555555c3cddd in multipass::QemuVirtualMachine::ensure_vm_is_running() ()
#2  0x0000555555c41d25 in void std::__invoke_impl<void, void (multipass::QemuVirtualMachine::*&)(), multipass::QemuVirtualMachine*&>(std::__invoke_memfun_deref, void (multipass::QemuVirtualMachine::*&)(), multipass::QemuVirtualMachine*&) ()
#3  0x0000555555c41972 in std::__invoke_result<void (multipass::QemuVirtualMachine::*&)(), multipass::QemuVirtualMachine*&>::type std::__invoke<void (multipass::QemuVirtualMachine::*&)(), multipass::QemuVirtualMachine*&>(void (multipass::QemuVirtualMachine::*&)(), multi
pass::QemuVirtualMachine*&) ()
#4  0x0000555555c4140f in void std::_Bind<void (multipass::QemuVirtualMachine::*(multipass::QemuVirtualMachine*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) ()
#5  0x0000555555c40e09 in void std::_Bind<void (multipass::QemuVirtualMachine::*(multipass::QemuVirtualMachine*))()>::operator()<, void>() ()
#6  0x0000555555c40777 in std::_Function_handler<void (), std::_Bind<void (multipass::QemuVirtualMachine::*(multipass::QemuVirtualMachine*))()> >::_M_invoke(std::_Any_data const&) ()
#7  0x0000555555c5fa44 in std::function<void ()>::operator()() const ()
#8  0x0000555555c5cf12 in multipass::utils::wait_until_ssh_up(multipass::VirtualMachine*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<void ()> const&)::{lambda()#1}::operator()() const ()
#9  0x0000555555c5de57 in void multipass::utils::try_action_for<multipass::utils::wait_until_ssh_up(multipass::VirtualMachine*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<void ()> const&)::{lambda()#2}&, multipass::utils::wait_until_ssh_up(multip
ass::VirtualMachine*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<void ()> const&)::{lambda()#1}&>(multipass::utils::wait_until_ssh_up(multipass::VirtualMachine*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<void ()> const&):
:{lambda()#2}&, std::chrono::duration<long, std::ratio<1l, 1000l> >, multipass::utils::wait_until_ssh_up(multipass::VirtualMachine*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<void ()> const&)::{lambda()#1}&) ()
#10 0x0000555555c5d200 in multipass::utils::wait_until_ssh_up(multipass::VirtualMachine*, std::chrono::duration<long, std::ratio<1l, 1000l> >, std::function<void ()> const&) ()
#11 0x0000555555c3d24c in multipass::QemuVirtualMachine::wait_until_ssh_up(std::chrono::duration<long, std::ratio<1l, 1000l> >) ()
#12 0x0000555555bad000 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > multipass::Daemon::async_wait_for_ssh_and_start_mounts_for<multipass::LaunchReply>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > c
onst&, grpc::ServerWriter<multipass::LaunchReply>*) ()
#13 0x0000555555bd3797 in QtConcurrent::StoredMemberFunctionPointerCall2<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, multipass::Daemon, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cx
x11::basic_string<char, std::char_traits<char>, std::allocator<char> >, grpc::ServerWriter<multipass::LaunchReply>*, grpc::ServerWriter<multipass::LaunchReply>*>::runFunctor() ()
#14 0x0000555555bd3611 in QtConcurrent::RunFunctionTask<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::run() ()
#15 0x00007ffff63332b2 in QThreadPoolThread::run (this=0x7fffb80155b0) at thread/qthreadpool.cpp:99
#16 0x00007ffff633617d in QThreadPrivate::start (arg=0x7fffb80155b0) at thread/qthread_unix.cpp:368
#17 0x00007ffff69dc6db in start_thread (arg=0x7fffc9ffb700) at pthread_create.c:463
#18 0x00007ffff567b88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

@townsend2010
Copy link
Contributor

Having looked at the two traces in here, I think @Saviq's and @gerboland's issues are different. I'm pretty sure @Saviq's issue is fixed by #741 because I saw a similar traceback when working on that fix.

Also I have found the root cause of @gerboland's traceback and it's a separate issue. I'm just going to open a new bug for @gerboland's issue and I'm going to close this one since I'm pretty sure it's fixed.

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

3 participants