Subject: checkquota fails on FFSv2
To: None <netbsd-users@NetBSD.org>
From: Malte Dehling <mdehling@math.ruhr-uni-bochum.de>
List: netbsd-users
Date: 12/26/2004 20:19:53
Hi,
yesterday I tried setting up quota on my SparcStation 20 running
NetBSD 2.0/sparc. I put the userquota option in `/etc/fstab', set the quota
using `edquota' and then tried to enable quota by putting `quota=YES' in
`/etc/rc.conf' and running `/etc/rc.d/quota start'.
What I got was this:
sparc# /etc/rc.d/quota start
Checking quotas:quotacheck: bad inode number N to nextinode
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
ffs: /dev/rsd1a (/export)
done.
with some number N, which I dont remember :)
The box was in an unusable state afterwards, as every attempt to access the
/export filesystem just hung. I could not disable quota as this would hang
the box aswell.
Finally I had to restart the SparcStation in single user mode and disable quota
in order to be able to use it again...
The same thing happened on two different harddisks, so I think it is software
-related.
I investigated this problem a little further on my Indy, as I needed my
SparcStation for mail/irc/icq and nfs/www server stuff...
I did a clean NetBSD 2.0 install on it twice: (didnt like debian anyway ;)
1) The first time I used FFSv2 as the filesystem. No matter what I did with
the quota stuff, I kept running into the same trouble as on my SS20.
2) The second time, I used FFSv1 for all filesystems... Here is what happened:
---
[added userquota options]
indy# cat /etc/fstab
/dev/sd0a / ffs rw,softdep 1 1
/dev/sd0b none swap sw 0 0
# /dev/sd0d /mnt ??? rw,noauto 0 0
/dev/sd0e /usr ffs rw,softdep 1 2
/dev/sd0f /var ffs rw,softdep,userquota 1 2
/dev/sd0g /home ffs rw,softdep,userquota 1 2
kernfs /kern kernfs rw
procfs /proc procfs rw,noauto
indy# mount
/dev/sd0a on / type ffs (soft dependencies, local)
/dev/sd0f on /var type ffs (soft dependencies, local)
/dev/sd0e on /usr type ffs (soft dependencies, local)
kernfs on /kern type kernfs (local)
/dev/sd0g on /home type ffs (soft dependencies, local)
indy# useradd -m user
indy# edquota -u -s 32768/4096 -h 65536/8192 user
edquota: Creating quota file /var/quota.user
edquota: Creating quota file /home/quota.user
[this is using FFSv1]
indy# /etc/rc.d/quota start
Checking quotas: done.
indy# /etc/rc.d/quota stop
indy# umount /home
[now try the same thing with FFSv2: `-O 2']
indy# newfs -O 2 -b 8192 -f 1024 /dev/sd0g
/dev/sd0g: 3150.2MB (6451596 sectors) block size 8192, fragment size 1024
using 69 cylinder groups of 45.66MB, 5844 blks, 10976 inodes.
super-block backups (for fsck -b #) at:
144, 93648, 187152, 280656, 374160, 467664, 561168, 654672,
748176, 841680, 935184, 1028688, 1122192, 1215696, 1309200, 1402704,
1496208, 1589712, 1683216, 1776720, 1870224, 1963728, 2057232, 2150736,
2244240, 2337744, 2431248, 2524752, 2618256, 2711760, 2805264, 2898768,
2992272, 3085776, 3179280, 3272784, 3366288, 3459792, 3553296, 3646800,
3740304, 3833808, 3927312, 4020816, 4114320, 4207824, 4301328, 4394832,
4488336, 4581840, 4675344, 4768848, 4862352, 4955856, 5049360, 5142864,
5236368, 5329872, 5423376, 5516880, 5610384, 5703888, 5797392, 5890896,
5984400, 6077904, 6171408, 6264912, 6358416,
indy# mount /home
indy# edquota -u -s 32768/4096 -h 65536/8192 user
edquota: Creating quota file /home/quota.user
[makes me think it has something todo with FFSv2...]
indy# /etc/rc.d/quota start
Checking quotas:quotacheck: bad inode number 64 to nextinode
THE FOLLOWING FILE SYSTEM HAD AN UNEXPECTED INCONSISTENCY:
ffs: /dev/rsd0g (/home)
done.
[this hangs when trying to report status of /home quotas]
indy# repquota -a -v
*** Report for user quotas on /var (/dev/sd0f)
Block limits File limits
User used soft hard grace used soft hard grace
root -- 530 0 0 91 0 0
daemon -- 1 0 0 2 0 0
games -- 21 0 0 29 0 0
named -- 1 0 0 1 0 0
smmsp -- 1 0 0 1 0 0
uucp -- 3 0 0 4 0 0
nobody -- 0 0 0 1 0 0
^Z
Suspended
[searched google: there seem to be some issues with vnlock() deadlocking?]
indy# ps -l
UID PID PPID CPU PRI NI VSZ RSS WCHAN STAT TT TIME COMMAND
0 496 469 0 18 0 304 988 pause S p0 0:00.83 -csh
0 617 496 1 -2 0 152 772 vnlock D p0 0:00.23 repquota -a -v
0 697 496 1 30 0 92 624 - R+ p0 0:00.01 ps -l
0 427 1 0 3 0 300 948 ttyin Is+ E0 0:00.95 -csh
---
All processes that try to access the /home (FFSv2 w quota) filesystem, just hang
with `ps -l' reporting WCHAN: vnlock .
I thought this might be of interest to someone... dont _really_ need
quota myself, still Id like to have it working ;).
Any help/ideas would be appreciated. Im willing to try any fixes.
--
Malte Dehling
Mail: mdehling [at] math.ruhr-uni-bochum.de
Website: http://mdehling.ath.cx/mdehling/
PGP: 2586 A3BF B438 E68E 2B85 C4EA C5A7 AD96 C865 03D2