canonical / canonical/multipass

[qemu] multipassd crashes if qemu crashes on startup

Open
#2,030 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
9.2k
Forks
829
Avg merge
3d 2h
Merged PRs (30d)
45

Description

Helping a user on IRC, we discovered that if `qemu` crashes before all of the signal & slots have been connected, then `multipassd` will crash. Here is a snippet of the user's log:
```
mar 31 18:42:00 t540p multipassd[164898]: QProcess: Destroyed while process ("qemu-system-x86_64") is still running.
mar 31 18:42:00 t540p multipassd[164898]: process error occurred Crashed program: qemu-system-x86_64; error: Process crashed
mar 31 18:42:00 t540p multipassd[164898]: error: program: qemu-system-x86_64; error: Process crashed
mar 31 18:42:00 t540p multipassd[164898]: QObject::connect(multipass::Process, Unknown): invalid null parameter
mar 31 18:42:00 t540p multipassd[164898]: QObject::connect(multipass::Process, Unknown): invalid null parameter
mar 31 18:42:00 t540p multipassd[164898]: QObject::connect(multipass::Process, Unknown): invalid null parameter
mar 31 18:42:00 t540p multipassd[164898]: QObject::connect(multipass::Process, Unknown): invalid null parameter
mar 31 18:42:00 t540p multipassd[164898]: QObject::connect(multipass::Process, Unknown): invalid null parameter
mar 31 18:42:00 t540p multipassd[164898]: QObject::connect(multipass::Process, Unknown): invalid null parameter
```

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the QEMU startup crash and tracing the signal/slot connections created before the process exits, using the supplied log as the failure symptom. Done means multipassd remains running and reports the QEMU startup failure instead of crashing; locate and run the relevant regression coverage once identified.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.