DragonFly bugs List (threaded) for 2008-09
DragonFly BSD
DragonFly bugs List (threaded) for 2008-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: hammer + nfs => Input/output error


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 9 Sep 2008 16:51:12 -0700 (PDT)

:Using HAMMER for nfs exports, nfs client often get in a state
:where access to most files return `Input/output error' (EIO state).
:
:Example:
: - nfs server using HAMMER for all exports
: - nfs client mount of usr/src and /home/thomas (/usr/obj local)

    Another question.  Are you trying to export PFSs or are you exporting
    a base HAMMER mount?

    There are going to be multiple issues with PFSs.

:When this happens nfs server log error (multiple times):
:lookupdotdot failed 2 dvp 0xca3087d0
:
:Is core dump needed?
:(will decrease hw.physmem; 2G now)
:
: -thomas

    Hmm.  I will try to reproduce it.  What is your system config?
    e.g.  Memory, df output, exports list, on the server.  Also your
    df output and fstab on the client.

    That particular VOP doesn't get run very often due to caching.  It
    is probably (hopefully) a simple bug but I probably need to instrument
    the filesystem to track it down.

    A kernel core would be useful if you add code to panic the system
    in the correct procedure so I get some context to work with.  I have
    included a patch for that below (adding temporary debugging panics
    in the right places).  This would be on the server side.

					-Matt
					Matthew Dillon 
					<dillon@backplane.com>

Index: hammer_vnops.c
===================================================================
RCS file: /cvs/src/sys/vfs/hammer/hammer_vnops.c,v
retrieving revision 1.96
diff -u -p -r1.96 hammer_vnops.c
--- hammer_vnops.c	9 Aug 2008 07:04:16 -0000	1.96
+++ hammer_vnops.c	9 Sep 2008 23:50:12 -0000
@@ -965,6 +965,7 @@ hammer_vop_nlookupdotdot(struct vop_nloo
 				   dip->obj_asof);
 		} else {
 			*ap->a_vpp = NULL;
+			panic("HAMMER DOTDOT1");
 			return ENOENT;
 		}
 	}
@@ -982,6 +983,8 @@ hammer_vop_nlookupdotdot(struct vop_nloo
 		*ap->a_vpp = NULL;
 	}
 	hammer_done_transaction(&trans);
+	if (error)
+		panic("HAMMER DOTDOT2");
 	return (error);
 }
 



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]