9.2-RELEASE amd64 panic: vn_open_cred
Konstantin Belousov
kostikbel at gmail.com
Fri Nov 8 08:09:44 UTC 2013
On Fri, Nov 08, 2013 at 05:16:13PM +1300, Matt Magoffin wrote:
> On Nov 8, 2013, at 12:08 PM, Konstantin Belousov <kostikbel at gmail.com> wrote:
>
> >> From a 9.2 amd64 virtual machine, this is what I get:
> >>
> >> (kgdb) list *VOP_ADD_WRITECOUNT_APV+0x78
> >> 0xffffffff80d96898 is in VOP_ADD_WRITECOUNT_APV (vnode_if.c:4236).
> >> 4231 in vnode_if.c
> >>
> >> Does this help?
> >>
> > I need the code around this line; corresponding file is generated, I
> > do not have it.
>
> I generated vnode_if.c using this command:
>
> /usr/bin/awk -f /usr/src/sys/tools/vnode_if.awk /usr/src/sys/kern/vnode_if.src -c
>
> I just inferred that command, I do not know if that is correct. Here are lines 4219-4264 from the file:
>
> int
> VOP_ADD_WRITECOUNT_APV(struct vop_vector *vop, struct vop_add_writecount_args *a)
> {
> int rc;
>
> VNASSERT(a->a_gen.a_desc == &vop_add_writecount_desc, a->a_vp,
> ("Wrong a_desc in vop_add_writecount(%p, %p)", a->a_vp, a));
> while(vop != NULL && \
> vop->vop_add_writecount == NULL && vop->vop_bypass == NULL)
> vop = vop->vop_default;
> VNASSERT(vop != NULL, a->a_vp, ("No vop_add_writecount(%p, %p)", a->a_vp, a));
> SDT_PROBE(vfs, vop, vop_add_writecount, entry, a->a_vp, a, 0, 0, 0);
>
> ASSERT_VI_UNLOCKED(a->a_vp, "VOP_ADD_WRITECOUNT");
> ASSERT_VOP_ELOCKED(a->a_vp, "VOP_ADD_WRITECOUNT");
> VFS_PROLOGUE(a->a_vp->v_mount);
So which line is 4236 ? That one ^^^^ ?
If yes, I absolutely need you to obtain core dump and than print *a
and *(a->a_vp) from the debugger, to make further progress.
> if (vop->vop_add_writecount != NULL)
> rc = vop->vop_add_writecount(a);
But, if I mis-counted and the line 4236 is that one ^^^^, than together
with the panic message
panic: vm_fault: fault on nofault entry, addr: ffffff836e0fc000
which suggests that vop_add_writecount not NULL but garbage, I believe
that your issue is stale module, compiled on 9.1 but used on 9.2.
> else
> rc = vop->vop_bypass(&a->a_gen);
> VFS_EPILOGUE(a->a_vp->v_mount);
> CTR2(KTR_VOP,
> "VOP_ADD_WRITECOUNT(vp 0x%lX, inc %ld)",
> a->a_vp, a->a_inc);
> SDT_PROBE(vfs, vop, vop_add_writecount, return, a->a_vp, a, rc, 0, 0);
>
> if (rc == 0) {
> ASSERT_VI_UNLOCKED(a->a_vp, "VOP_ADD_WRITECOUNT");
> ASSERT_VOP_ELOCKED(a->a_vp, "VOP_ADD_WRITECOUNT");
> } else {
> ASSERT_VI_UNLOCKED(a->a_vp, "VOP_ADD_WRITECOUNT");
> ASSERT_VOP_ELOCKED(a->a_vp, "VOP_ADD_WRITECOUNT");
> }
> return (rc);
> }
>
> struct vnodeop_desc vop_add_writecount_desc = {
> "vop_add_writecount",
> 0,
> (vop_bypass_t *)VOP_ADD_WRITECOUNT_AP,
> vop_add_writecount_vp_offsets,
> VDESC_NO_OFFSET,
> VDESC_NO_OFFSET,
> VDESC_NO_OFFSET,
> VDESC_NO_OFFSET,
> };
>
> Cheers,
> Matt
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20131108/4449a7b8/attachment.sig>
More information about the freebsd-stable
mailing list