Summary: | [Hyper-V]mount root may fail because vfs' mount starts early than VMBUS | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Base System | Reporter: | Hongjiang <honzhan> | ||||||
Component: | kern | Assignee: | Bugmeister <bugmeister> | ||||||
Status: | Closed Overcome By Events | ||||||||
Severity: | Affects Many People | CC: | dave, decui, kyliel, sephe, weh, whu | ||||||
Priority: | --- | ||||||||
Version: | CURRENT | ||||||||
Hardware: | Any | ||||||||
OS: | Any | ||||||||
Attachments: |
|
Description
Hongjiang
2016-07-15 07:40:21 UTC
Created attachment 172546 [details]
boot error log
Created attachment 182594 [details]
fix mountroot hyper-v in 11-stable
I had the same problem in 11-stable. The issue is that storvsc root_mount_hold() happens after ZFS tried to mount root. Adding it to the bus fixed it (see patch). I found this a little more satisfying than the busy wait suggested in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208882 Well an update to Windows 10 workstation and simple patch fails now too. ZFS doesn't wait. I suspect I'm hitting cleanup for some Hyper-V service like kvpair or something. At any rate the patch I added no longer works for me (with no upgrade to my kernel) so at the very least it is not reliable. (In reply to David Marker from comment #4) If you do not use ZFS, the mount failure should not occur on 11-stable if you set a relative long waiting time: "vfs.mountroot.timeout=30". On Azure, I used "vfs.mountroot.timeout=300" and this error never happen. If you want to use ZFS, the current workable solution is https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208882. ^Triage: close as OBE. I'm sorry that this PR never got looked at, but by now, 11.X is long out of support. |