Created attachment 184823 [details]
loader: Ignore check_mos_features()'s return code but log it
After updating a system based on r321478 to one based on r321624
the loader rejected vanilla ZFS version 28 pools with the message:
ZFS: pool bpool is not supported
Pools that have been upgraded to contain features are accepted as expected.
The offending commits seems to be r321525 + r321526 (which MFC'd r314112).
For now I'm using the attached patch which works around the problem by
ignoring the check_mos_features() return code.
When using vanilla ZFS version 28 pools it results in the loader message:
ZFS: check_mos_features() returned 2 for pool bpool. Continuing
Probably check_mos_features() should only be called when features are present.
I ran into the problem using bhyveload which relies on /boot/userboot.so.
While I expect the problem to be reproducible with the other loaders as well,
I haven't verified this.
A commit references this bug:
Date: Sat Jul 29 09:56:08 UTC 2017
New revision: 321680
MFC r307865 (by tsoome): loader should boot pre-feature flags pools.
The feature flags chek is missing the corner case where we have valid pool
version, but feature flags are not enabled - as for example plain v28 pool.
This update does fix the boot support for such pools.
Differential Revision: https://reviews.freebsd.org/D8331
It appeared to be fixed in HEAD. Merged patch should fix it.
The merge indeed fixed the issue. Thanks.