Bug 221084 - Loader fails to boot from vanilla ZFS version 28 pools (regression caused by MFC of r314112)
Summary: Loader fails to boot from vanilla ZFS version 28 pools (regression caused by ...
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 11.1-STABLE
Hardware: Any Any
: --- Affects Some People
Assignee: Alexander Motin
Keywords: regression
Depends on:
Reported: 2017-07-29 08:25 UTC by Fabian Keil
Modified: 2017-07-30 15:02 UTC (History)
2 users (show)

See Also:

loader: Ignore check_mos_features()'s return code but log it (953 bytes, patch)
2017-07-29 08:25 UTC, Fabian Keil
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Fabian Keil 2017-07-29 08:25:41 UTC
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.
Comment 1 commit-hook freebsd_committer 2017-07-29 09:56:34 UTC
A commit references this bug:

Author: mav
Date: Sat Jul 29 09:56:08 UTC 2017
New revision: 321680
URL: https://svnweb.freebsd.org/changeset/base/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

  PR:		221084

_U  stable/11/
Comment 2 Alexander Motin freebsd_committer 2017-07-29 09:57:33 UTC
It appeared to be fixed in HEAD.  Merged patch should fix it.
Comment 3 Fabian Keil 2017-07-30 15:02:48 UTC
The merge indeed fixed the issue. Thanks.