canonical / multipass

Multipass orchestrates virtual Ubuntu instances
https://multipass.run
GNU General Public License v3.0
7.68k stars 637 forks source link

`multipass find --force-update -vvvv` sometimes crashes the daemon #3578

Open sharder996 opened 1 month ago

sharder996 commented 1 month ago

Describe the bug multipass find --force-update sometimes fails when running with trace verbosity. Happening on multiple OS's

Logs

% multipass find --force-update -vvvv
[2024-07-11T13:54:28.979] [debug] [async task] fetch manifest from the internet
[2024-07-11T13:54:29.449] [trace] [url downloader] Found https://cdimage.ubuntu.com/ubuntu-core/appliances/streams/v1/index.json in cache: false
find failed: cannot connect to the multipass socket
% multipass ls
list failed: cannot connect to the multipass socket
georgeliao commented 1 month ago

This line is where the segfault happened. A few lines backtrace log is below

/home/georgel/projects/canonical_projects/multipass/include/multipass/logging/client_logger.h   54  stack   Frame #23
/home/georgel/projects/canonical_projects/multipass/src/logging/multiplexing_logger.cpp 34  stack   Frame #24
/home/georgel/projects/canonical_projects/multipass/src/logging/log.cpp 63  stack   Frame #25
/home/georgel/projects/canonical_projects/multipass/src/network/url_downloader.cpp  123 stack   Frame #26
/home/georgel/projects/canonical_projects/multipass/src/network/url_downloader.cpp  260 stack   Frame #27
/home/georgel/projects/canonical_projects/multipass/src/daemon/custom_image_host.cpp    99  stack   Frame #28
/home/georgel/projects/canonical_projects/multipass/src/daemon/custom_image_host.cpp    140 stack   Frame #29

It could be a data race on the logger that only occurs in trace verbosity.