Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Feb 2021 22:16:04 +0200
From:      Andriy Gapon <avg@FreeBSD.org>
To:        FreeBSD Current <freebsd-current@FreeBSD.org>, freebsd-fs@FreeBSD.org
Cc:        Mateusz Guzik <mjg@FreeBSD.org>
Subject:   Re: panic: condition seqc_in_modify(_vp->v_seqc) not met at zfs_acl.c:1147 (zfs_acl_chown_setattr)
Message-ID:  <8f944450-734d-e70b-c1fb-10d2239576e2@FreeBSD.org>
In-Reply-To: <038304d0-2cd0-f089-56ee-c094cdc4cc21@FreeBSD.org>
References:  <1b261679-3492-dda8-614e-21150a2375d8@FreeBSD.org> <038304d0-2cd0-f089-56ee-c094cdc4cc21@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 15/02/2021 11:45, Andriy Gapon wrote:
> On 15/02/2021 10:22, Andriy Gapon wrote:
>>
>> I've got this panic once when copying a couple of files.
>> The system is stable/13 as of 1996360d7338d, a custom kernel configuration, but
>> no local source code modifications.
>>
>> Unread portion of the kernel message buffer:
>> VNASSERT failed: ({ seqc_t __seqc = (_vp->v_seqc); __builtin_expect((__seqc &
>> 1), 0); }) not true at
>> /usr/devel/git/trant/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c:1147
>> (zfs_acl_chown_setattr)
>> 0xfffff8013e4e85b8: type VDIR
>>     usecount 1, writecount 0, refcount 1 seqc users 0 mountedhere 0
>>     hold count flags ()
>>     flags ()
>>     lock type zfs: EXCL by thread 0xfffffe01dd1cd560 (pid 30747, kdeinit5, tid
>> 159911)
>> panic: condition seqc_in_modify(_vp->v_seqc) not met at
>> /usr/devel/git/trant/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c:1147
>> (zfs_acl_chown_setattr)
>>
>> Any ideas, suggestions, hints?
>> Thanks!
>>
> ...
>> #4  0xffffffff8036fd21 in zfs_acl_chown_setattr (zp=0xfffff801ccd203b0)
>>     at /usr/devel/git/trant/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_acl.c:1147
>> #5  0xffffffff8037e52d in zfs_setattr (zp=0xfffff8024b04f760,
>>     vap=vap@entry=0xfffffe029a36c870, flags=flags@entry=0,
>>     cr=<optimized out>, cr@entry=0xfffff8003ecedc00)
>>     at
>> /usr/devel/git/trant/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vnops_os.c:2758
> 
> So, this is actually the second zfs_acl_chown_setattr call here:
>                 err = zfs_acl_chown_setattr(zp);
>                 ASSERT(err == 0);
>                 if (attrzp) {
>                         err = zfs_acl_chown_setattr(attrzp);
>                         ASSERT(err == 0);
>                 }
> 
> I am not sure if the assertion is actually applicable to attrzp (extended
> attributes "directory").
> At least I do not see any seq calls for it.
> 

So, I think that the problem should be reproducible by simply chown-ing a file
with an extended attribute.  The kernel should be compiled with both
DEBUG_VFS_LOCKS and INVARIANTS.

-- 
Andriy Gapon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8f944450-734d-e70b-c1fb-10d2239576e2>