Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 04 Jan 2021 00:14:39 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 252396] [zfs] [panic] Panic on 'bectl list' after slog removal
Message-ID:  <bug-252396-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D252396

            Bug ID: 252396
           Summary: [zfs] [panic] Panic on 'bectl list' after slog removal
           Product: Base System
           Version: CURRENT
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: junovitch@freebsd.org

Overview:

Following the removal of a slog the pool is now in a state where 'bectl lis=
t'
will panic it. Discovered after removing the slog device from a machine when
the SSD it was on has been acting up.

Steps to Reproduce:

This is on a fresh VM with a minimal reproduction.

1. Create a VM with two disks or suitable partitions for testing.

Assuming ada0 was used as the zfs installation disk during bsdinstall... `g=
part
create -s gpt ada1; gpart add -t freebsd-zfs -a 4096 ada1` is sufficient for
the second disk.

2. Baseline -- will run without issues

bectl list

3. Add the slog

zpool add zroot log ada1p1

4. Baseline 2 -- will run without issues

bectl list

5. Remove the slog

zpool remove zroot ada1p1

6. Create a panic

bectl list

Result:

vpanic() at vpanic+0x181/frame 0xfffffe00a80af3b0
panic() at panic+0x43/frame 0xfffffe00a80af410
trap_fatal() at trap_fatal+0x387/frame 0xfffffe00a80af470
trap_pfault() at trap_pfault+0x97/frame 0xfffffe00a80af4d0
trap() at trap+0x2ab/frame 0xfffffe00a80af5e0
--- trap 0xc, rip =3D 0 =3D 0xfffffe00a80af56b8, rbp =3D 0xfffffe00a80af6d0=
 --- ??()
at 0/frame 0xfffffe00a80af6d0
spa_vdev_state_enter() at spa_vdev_state_enter+0x43/frame 0xfffffe00a80af700
zfs_ioc_get_bootenv() at zfs_ioc_get_bootenv+0x32/frame 0xfffffe00a80af730
zfsdev_ioctl_common() at zfsdev_ioctl_common+0x4e0/frame 0xfffffe00a80af7d0
zfsdev_ioctl() at zfsdev_ioctl+0x146/frame 0xfffffe00a80af800
devfs_ioctl() at devfs_ioctl+0xcc/frame 0xfffffe00a80af850
vn_ioctl() at vn_ioctl+0x131/frame 0xfffffe00a80af960
devfs_ioctl_f() at devfs_ioctl_f+0x1e/frame 0xfffffe00a80af980
kern_ioctl() at kern_ioctl+0x289/frame 0xfffffe00a80afbf0
sys_ioctl() at sys_ioctl+0x12a/frame 0xfffffe00a80afbf0
amd64_syscall() at amd64_syscall+0x12a/frame 0xfffffe00a80afbf0
fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe00a80afbf0
--- syscall (54, FreeBSD ELF64, sys_ioctl), rip =3D 0x8003db45a, rsp =3D
0x7fffffffc668, rbp =3D 0x7fffffffc6d0 ---
KDB: enter: panic
[ thread pid 796 tid 100470 ]
Stopped at     kdb_enter+0x37: movq    $0,0x1099396(%rip)

Build Date & Hardware:

In this example this is using the 31 December snapshots ISOs:

FreeBSD test 13.0-CURRENT FreeBSD 13.0-CURRENT #0 main-c255460-g282381aa53a=
: Th
Dec 31 06:08:47 UTC 2020=20=20=20=20
root@releng1.nyi.freebsd.org:/usr/obj/usr/src/amd64.amd64/sys/GENERIC  amd64

Also observed on a hardware with a GENEIRIC-NODEBUG amd64 kernel running:

FreeBSD bsd 13.0-CURRENT FreeBSD 13.0-CURRENT #0 main-c255337-g8d405efd73d:=
 Sat
Dec 26 17:07:08 UTC 2020

Additional Information:

Re-adding the slog device will still results in a panic on 'bectl list'. It
will also panic on boot now and will no longer fully boot to the OS.

As a workaround bectl create, mount, umnount, activate commands all seem to
work from minimal checks.  It looks feasible to use zfs list to verify nami=
ng
and use the other commands to do minimal work on boot environments at this
point while =E2=80=98bectl list=E2=80=99 is creating a panic.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-252396-227>