canonical / canonical/multipass
Multipass mounts do not survive restart of Windows 10
- Dominant language
- C++
- Stars
- 9.2k
- Forks
- 828
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 44
Description
**Describe the bug**
On Windows 10, after adding a mount and restarting Windows, If I then attempt to list the mounts in the shell, the shell hangs for several minutes, until it times out.
**To Reproduce**
1. `multipass mount C:\dev\gitrepos\dar dar0:/mnt/dardev`
2. Verified I could access the contents of C:\dev\gitrepos\dar
3. Restart Windows 10
4. `multipass shell dar0`
5. `ls -la /mnt/dardev`
At this point, the shell hangs for several minutes (Ctrl-C does nothing). Eventually it comes back, showing /mnt/dardev as empty.
**Expected behavior**
Mounts should survive a reboot, or at least not hang when accessed.
**Logs**
Here's the logs from Windows Event Viewer including a restart.
Level,Date and Time,Source,Event ID,Task Category,Log
Information,10/15/2020 4:58:15 PM,Multipass,1,None,Application,[daemon] Daemon arguments: C:\Program Files\Multipass\bin\multipassd.exe --verbosity debug
Information,10/15/2020 4:58:10 PM,Multipass,1,None,Application,[dar2] powershell started
Information,10/15/2020 4:58:10 PM,Multipass,1,None,Application,[dar2] powershell state changed to Running
Information,10/15/2020 4:58:09 PM,Multipass,1,None,Application,[dar2] powershell state changed to Starting
Information,10/15/2020 4:58:09 PM,Multipass,1,None,Application,[dar2] powershell program 'powershell.exe'
Information,10/15/2020 4:58:09 PM,Multipass,1,None,Application,[dar2] powershell working dir ''
Information,10/15/2020 4:58:09 PM,Multipass,1,None,Application,"[dar2] powershell arguments '-NoProfile, -NoExit, -Command, -'
"
Information,10/15/2020 4:58:02 PM,Multipass,1,None,Application,[dar1] powershell started
Information,10/15/2020 4:58:02 PM,Multipass,1,None,Application,[dar1] powershell state changed to Running
Information,10/15/2020 4:58:00 PM,Multipass,1,None,Application,[dar1] powershell state changed to Starting
Information,10/15/2020 4:58:00 PM,Multipass,1,None,Application,[dar1] powershell program 'powershell.exe'
Information,10/15/2020 4:58:00 PM,Multipass,1,None,Application,[dar1] powershell working dir ''
Information,10/15/2020 4:58:00 PM,Multipass,1,None,Application,"[dar1] powershell arguments '-NoProfile, -NoExit, -Command, -'
"
Information,10/15/2020 4:57:50 PM,Multipass,1,None,Application,[dar0] powershell started
Information,10/15/2020 4:57:50 PM,Multipass,1,None,Application,[dar0] powershell state changed to Running
Information,10/15/2020 4:57:50 PM,Multipass,1,None,Application,[dar0] powershell state changed to Starting
Information,10/15/2020 4:57:50 PM,Multipass,1,None,Application,[dar0] powershell program 'powershell.exe'
Information,10/15/2020 4:57:50 PM,Multipass,1,None,Application,[dar0] powershell working dir ''
Information,10/15/2020 4:57:50 PM,Multipass,1,None,Application,"[dar0] powershell arguments '-NoProfile, -NoExit, -Command, -'
"
Information,10/15/2020 4:57:47 PM,Multipass,1,None,Application,"[rpc] gRPC listening on localhost:50051, SSL:on
"
Information,10/15/2020 4:57:43 PM,Multipass,1,None,Application,[update] Latest Multipass release available is version 1.4.0
Information,10/15/2020 4:57:41 PM,Multipass,1,None,Application,[service_main] service is running
Information,10/15/2020 4:57:41 PM,Multipass,1,None,Application,[service_main] registering control handler
Information,10/15/2020 4:57:41 PM,Multipass,1,None,Application,[main] calling service ctrl dispatcher
Information,10/15/2020 4:57:41 PM,Multipass,1,None,Application,[main] Service arguments: C:\Program Files\Multipass\bin\multipassd.exe /svc --verbosity debug
Information,10/15/2020 4:57:41 PM,Multipass,1,None,Application,[main] Starting Multipass 1.4.0+win
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[daemon] Goodbye!
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[dar2] powershell finished with exit code 2
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[dar2] powershell state changed to NotRunning
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[dar0] powershell finished with exit code 2
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[dar0] powershell state changed to NotRunning
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[dar1] powershell finished with exit code 2
Information,10/15/2020 4:53:55 PM,Multipass,1,None,Application,[dar1] powershell state changed to NotRunning
Information,10/15/2020 4:52:45 PM,Multipass,1,None,Application,"[basic_process] starting: C:/Program Files/Multipass/bin/sshfs_server dar0.mshome.net 22 ubuntu C:/dev/gitrepos/dar /mnt/dardev -2:-1, -2:-1,
"
Information,10/15/2020 4:52:45 PM,Multipass,1,None,Application,"[sshfs-mounts] process arguments 'dar0.mshome.net, 22, ubuntu, C:/dev/gitrepos/dar, /mnt/dardev, -2:-1,, -2:-1,'
"
Information,10/15/2020 4:52:45 PM,Multipass,1,None,Application,[sshfs-mounts] process program 'C:/Program Files/Multipass/bin/sshfs_server'
Information,10/15/2020 4:52:45 PM,Multipass,1,None,Application,[sshfs-mounts] mounting C:/dev/gitrepos/dar => /mnt/dardev in dar0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 19
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 11
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 11
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 10
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 9
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 15
Information,10/15/2020 4:51:17 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 19
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 11
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 11
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 10
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 9
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 15
Information,10/15/2020 4:51:16 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 19
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 11
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 11
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 10
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 9
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 0
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,[ssh process] ..\src\ssh\ssh_process.cpp:135 multipass::SSHProcess::read_stream(): num_bytes = 15
Information,10/15/2020 4:51:14 PM,Multipass,1,None,Application,"[ssh process] ..\src\ssh\ssh_process.cpp:117 multipass::SSHProcess::read_stream(type = 0, timeout = -1):
"
Information,10/15/2020 4:50:56 PM,Multipass,1,None,Application,[daemon] Daemon arguments: C:\Program Files\Multipass\bin\multipassd.exe --verbosity debug
Information,10/15/2020 4:50:55 PM,Multipass,1,None,Application,[dar2] powershell started
Information,10/15/2020 4:50:55 PM,Multipass,1,None,Application,[dar2] powershell state changed to Running
Information,10/15/2020 4:50:55 PM,Multipass,1,None,Application,[dar2] powershell state changed to Starting
Information,10/15/2020 4:50:55 PM,Multipass,1,None,Application,[dar2] powershell program 'powershell.exe'
Information,10/15/2020 4:50:55 PM,Multipass,1,None,Application,[dar2] powershell working dir ''
Information,10/15/2020 4:50:55 PM,Multipass,1,None,Application,"[dar2] powershell arguments '-NoProfile, -NoExit, -Command, -'
"
Information,10/15/2020 4:50:51 PM,Multipass,1,None,Application,[dar1] powershell started
Information,10/15/2020 4:50:51 PM,Multipass,1,None,Application,[dar1] powershell state changed to Running
Information,10/15/2020 4:50:51 PM,Multipass,1,None,Application,[dar1] powershell state changed to Starting
Information,10/15/2020 4:50:51 PM,Multipass,1,None,Application,[dar1] powershell program 'powershell.exe'
Information,10/15/2020 4:50:51 PM,Multipass,1,None,Application,[dar1] powershell working dir ''
Information,10/15/2020 4:50:51 PM,Multipass,1,None,Application,"[dar1] powershell arguments '-NoProfile, -NoExit, -Command, -'
"
Information,10/15/2020 4:50:46 PM,Multipass,1,None,Application,[dar0] powershell started
Information,10/15/2020 4:50:46 PM,Multipass,1,None,Application,[dar0] powershell state changed to Running
Information,10/15/2020 4:50:45 PM,Multipass,1,None,Application,[dar0] powershell state changed to Starting
Information,10/15/2020 4:50:45 PM,Multipass,1,None,Application,[dar0] powershell program 'powershell.exe'
Information,10/15/2020 4:50:45 PM,Multipass,1,None,Application,[dar0] powershell working dir ''
Information,10/15/2020 4:50:45 PM,Multipass,1,None,Application,"[dar0] powershell arguments '-NoProfile, -NoExit, -Command, -'
"
Information,10/15/2020 4:50:42 PM,Multipass,1,None,Application,"[rpc] gRPC listening on localhost:50051, SSL:on
"
Information,10/15/2020 4:50:41 PM,Multipass,1,None,Application,[update] Latest Multipass release available is version 1.4.0
Information,10/15/2020 4:50:39 PM,Multipass,1,None,Application,[service_main] service is running
Information,10/15/2020 4:50:39 PM,Multipass,1,None,Application,[service_main] registering control handler
Information,10/15/2020 4:50:39 PM,Multipass,1,None,Application,[main] calling service ctrl dispatcher
Information,10/15/2020 4:50:39 PM,Multipass,1,None,Application,[main] Service arguments: C:\Program Files\Multipass\bin\multipassd.exe /svc --verbosity debug
Information,10/15/2020 4:50:39 PM,Multipass,1,None,Application,[main] Starting Multipass 1.4.0+win
**Additional info**
- OS: Windows 10 Enterprise
- multipass 1.4.0+win, multipassd 1.4.0+win
- `multipass info --all`
C:\Users\mike.conner>multipass info --all
Name: dar0
State: Running
IPv4: 172.17.46.218
Release: Ubuntu 20.04.1 LTS
Image hash: d18a9d2b890d (Ubuntu 20.04 LTS)
Load: 0.00 0.03 0.49
Disk usage: 1.9G out of 4.7G
Memory usage: 744.8M out of 1.4G
Mounts: C:/dev/gitrepos/dar => /mnt/dardev
UID map: -2:default
GID map: -2:default
Name: dar1
State: Running
IPv4: 172.17.46.214
Release: Ubuntu 20.04.1 LTS
Image hash: d18a9d2b890d (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 1.8G out of 4.7G
Memory usage: 749.8M out of 1.4G
Name: dar2
State: Running
IPv4: 172.17.46.213
Release: Ubuntu 20.04.1 LTS
Image hash: d18a9d2b890d (Ubuntu 20.04 LTS)
Load: 0.00 0.00 0.00
Disk usage: 2.1G out of 4.7G
Memory usage: 804.2M out of 1.5G
**Additional context**
Add any other context about the problem here.
Contributor guide
Research direction
Start by reproducing the `multipass mount` scenario on Windows 10, then inspect the Windows Event Viewer output and the logged `sshfs_server` mount process after restart. Done means the mount remains usable after reboot, or access fails promptly without hanging the shell.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- infrastructure, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100