[OpenAFS-devel] kernel BUG at /scratch/openafs/src/libafs/MODLOAD-2.6.13-MP/rx_kcommon.c:131!

Martin MOKREJŠ mmokrejs@ribosome.natur.cuni.cz
Mon, 05 Sep 2005 17:31:03 +0200


Yes, it doesn't crash anymore:

phylo .phylo.natur.cuni.cz # /usr/vice/etc/afsd -shutdown -debug -verbose
afsd: Shutting down all afs processes and afs state
SScall(137, 28, 201)=13 afsd: AFS still mounted; Not shutting down
phylo .phylo.natur.cuni.cz # umount /afs
umount: /afs: device is busy
umount: /afs: device is busy
phylo .phylo.natur.cuni.cz # /usr/vice/etc/afsd -shutdown -debug -verbose
afsd: Shutting down all afs processes and afs state
SScall(137, 28, 201)=13 afsd: AFS still mounted; Not shutting down
phylo .phylo.natur.cuni.cz # cd /
phylo / # umount /afs
phylo / #

Starting AFS cache scan...found 0 non-empty cache files (0%).
afs_dentry_iput("phylo.natur.cuni.cz", e7e99d64)
afs_CheckVolume():  afs_root changed.
afs_dentry_iput(".phylo.natur.cuni.cz", e7e99d64)
afs_dentry_iput("phylo.natur.cuni.cz", e7e99d64)
AFS isn't unmounted yet! Call aborted
AFS isn't unmounted yet! Call aborted
afs_dentry_iput("afsws", e7e9902c)
afs_dentry_iput("home", e7e99260)
afs_dentry_iput("usr", e7cb06c8)
afs_dentry_iput("i386_linux26", e7e99b30)
afs_dentry_iput(".phylo.natur.cuni.cz", e7e99d64)
afs_dentry_iput("/", e7cb0d64)
COLD shutting down of: CB... afs... BkG... CTrunc... AFSDB... RxEvent... UnmaskRxkSignals... RxListener... 


chas williams - CONTRACTOR wrote:
> In message <431AF7D4.4020806@ribosome.natur.cuni.cz>,=?windows-1252?Q?Martin_MOKREJ=8A?= writes:
> 
>>afs_dentry_iput("/", e7d1ed64)
>>inode freed while on LRU------------[ cut here ]------------
> 
> 
> i suspected it would the root mount.  try adding this patch.
> 
> during cell setup you create a readonly replica of the root volume.
> afs switches over to this readonly path in afs_CheckRootVolume().
> but the LINUX client doesnt have a provision for revalidating the root
> mount point (the dentry needs invalidated and revalidated).  this patch
> prevents the switchover and will let me know if my theory is correct.
> 
> Index: src/afs/afs_daemons.c
> ===================================================================
> RCS file: /cvs/openafs/src/afs/afs_daemons.c,v
> retrieving revision 1.33
> diff -u -u -r1.33 afs_daemons.c
> --- src/afs/afs_daemons.c	3 Apr 2005 18:13:30 -0000	1.33
> +++ src/afs/afs_daemons.c	5 Sep 2005 13:07:07 -0000
> @@ -309,8 +309,12 @@
>  		 * count to zero and fs checkv is executed when the current
>  		 * directory is /afs.
>  		 */
> +#ifdef AFS_LINUX20_ENV
> +		printk("afs_CheckVolume():  afs_root changed.\n");
> +#else
>  		AFS_FAST_RELE(afs_globalVp);
>  		afs_globalVp = 0;
> +#endif
>  	    }
>  	    afs_rootFid.Fid.Volume = volid;
>  	    afs_rootFid.Fid.Vnode = 1;