panic: No vop_need_inactive

Evilham contact at evilham.com
Sun Sep 1 13:30:49 UTC 2019


On dg., set. 01 2019, Guido Falsi wrote:

> Hi,
>
> I'm experiencing a recurring panic I can trigger repeatably.
>
> The machine is:
>
> FreeBSD 13.0-CURRENT r351604 amd64
>
> The panic looks ZFS related. This machine performs mainly 
> poudriere
> builds. I also use portshaker to manage the ports tree.
>
> Portshaker works by downloading ports trees and overlays in 
> zfses, then
> snapshots them, clones them placing the clones in the poudriere
> namespace, then modifies the ports there applying the required 
> overlays.
>
> This happens to me any time I run poudriere and after the build 
> I run
> portshaker to update the ports trees, when it tries to remove 
> the
> snapshot of the freebsd base tree (which AFAIK is the base for 
> the clone
> where poudriere works).
>
> I'm going to try to create a more clear and detailed use case, 
> removing
> from the equation complex programs like poudriere and 
> portshaker.
>

Interesting!

I was going to send a similar email a few hours ago to the current 
ML but decided to debug some more before that.

I use poudriere to manage my ports tree with svn, I do use ZFS. I 
can trigger the panic by running poudriere bulk on e.g. 
finance/gnucash.

Some more info that may be related:
- This worked fine on a build from the 2nd week of August, after 
  r350551 (a fix for AMD Ryzen laptops).
- Since that build had an issue with bhyve (as mentioned on this 
  list a few days ago), I upgraded last week which started 
  triggering this issue with poudriere
- It still happens with:
    # uname -v
    FreeBSD 13.0-CURRENT r351654+209e505321db-c262365(master) 
    GENERIC
  Which is posterior to r351642 that was mentioned by Mateusz.


> Here is the panic message:
>
> VNASSERT failed
> 0xfffff800abfcbd20: tag zfs, type VDIR
>     usecount 0, writecount 0, refcount 1 mountedhere 0
>     flags (VI_ACTIVE)
>  VI_LOCKed    lock type zfs: UNLOCKED
> 	name = portshaker-2019-09-01:11:04:20
> 	parent_id = 2
> 	id = 269
> panic: No vop_need_inactive(0xfffff800abfcbd20, 
> 0xfffffe00ba39b3f0)
> cpuid = 2
> time = 1567342436
> KDB: stack backtrace:
> db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
> 0xfffffe00ba39b310
> vpanic() at vpanic+0x19d/frame 0xfffffe00ba39b360
> panic() at panic+0x43/frame 0xfffffe00ba39b3c0
> VOP_NEED_INACTIVE_APV() at VOP_NEED_INACTIVE_APV+0x8f/frame
> 0xfffffe00ba39b3e0
> vputx() at vputx+0x1ae/frame 0xfffffe00ba39b440
> vfs_mount_destroy() at vfs_mount_destroy+0x14f/frame 
> 0xfffffe00ba39b470
> dounmount() at dounmount+0x7e8/frame 0xfffffe00ba39b4d0
> zfs_unmount_snap() at zfs_unmount_snap+0xbb/frame 
> 0xfffffe00ba39b4f0
> zfs_ioc_destroy_snaps() at zfs_ioc_destroy_snaps+0xb3/frame
> 0xfffffe00ba39b540
> zfsdev_ioctl() at zfsdev_ioctl+0x54c/frame 0xfffffe00ba39b5e0
> devfs_ioctl() at devfs_ioctl+0xc9/frame 0xfffffe00ba39b630
> vn_ioctl() at vn_ioctl+0x13d/frame 0xfffffe00ba39b740
> devfs_ioctl_f() at devfs_ioctl_f+0x1f/frame 0xfffffe00ba39b760
> kern_ioctl() at kern_ioctl+0x1e4/frame 0xfffffe00ba39b7c0
> sys_ioctl() at sys_ioctl+0x15d/frame 0xfffffe00ba39b890
> amd64_syscall() at amd64_syscall+0x284/frame 0xfffffe00ba39b9b0
> fast_syscall_common() at fast_syscall_common+0x101/frame 
> 0xfffffe00ba39b9b0
> --- syscall (54, FreeBSD ELF64, sys_ioctl), rip = 0x80049f2da, 
> rsp =
> 0x7fffffffc948, rbp = 0x7fffffffc9c0 ---
> KDB: enter: panic
>

FWIW: I am not 100% sure I it's the same panic, I am missing a 
cable ATM to get a full dump, but I do think they sound very 
similar.
--
Evilham


More information about the freebsd-fs mailing list