diff --git a/src/linux.rs b/src/linux.rs index 77949e8c13..d145e57175 100644 --- a/src/linux.rs +++ b/src/linux.rs @@ -2513,6 +2513,10 @@ where control_tubes.push(TaggedControlTube::VmMemory(wayland_host_tube)); // Balloon gets a special socket so balloon requests can be forwarded from the main process. let (balloon_host_tube, balloon_device_tube) = Tube::pair().map_err(Error::CreateTube)?; + // Set recv timeout to avoid deadlock on sending BalloonControlCommand before guest is ready. + balloon_host_tube + .set_recv_timeout(Some(Duration::from_millis(100))) + .map_err(Error::CreateTube)?; // Create one control socket per disk. let mut disk_device_tubes = Vec::new();