https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=296130

            Bug ID: 296130
           Summary: rc.d/zfskeys blocks boot on keylocation=prompt
                    datasets
           Product: Documentation
           Version: Latest
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: Website
          Assignee: [email protected]
          Reporter: [email protected]

After upgrading from FreeBSD 14.4-RELEASE to 15.1-RELEASE, my system hung at
boot waiting for a passphrase. The cause was the rc.d/zfskeys script now
prompting interactively for every dataset with keylocation=prompt. On 14.x
these datasets were silently skipped.

In my case the affected datasets are encrypted ZFS backups received via raw
send (`zfs send -w`). Raw-received datasets always have keylocation=prompt by
default (ZFS cannot preserve the source key path). The backup pool was in
zpool.cache, so zfskeys iterated over it at boot and blocked on each
encryption root. This likely affects anyone using zero-knowledge encrypted
backup workflows (zfs-autobackup, syncoid, manual raw sends).

Rresumably caused by commit 408087f128fe745dbfb2b8423f0afd9e0ce2d11a (D36081),
which added an explicit `keylocation=prompt` branch that reads from /dev/tty
unconditionally.
Previously these datasets fell through to the key-file check, which failed
harmlessly and skipped them.

This behavioral change is not mentioned in the errata for 15.0-RELEASE or
15.1-RELEASE. At a minimum it should be added as an errata entry for both
releases so administrators upgrading from 14.x are warned before rebooting.

Affected versions: 15.0-RELEASE, 15.1-RELEASE (14.x not affected).

Workaround: `zpool set cachefile=none <backuppool>` so the pool is not
auto-imported at boot, or `zpool export <backuppool>` to remove it from the
system entirely until needed.

Related: Phabricator D36081, commit 408087f128fe745dbfb2b8423f0afd9e0ce2d11a.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to