canonical / canonical/multipass

Multipass mounts do not survive restart of Windows 10

Open
#1,802 6 comments 1 reaction 0 assignees View on GitHub
mystery
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.