Subject: quotacheck ``infinite'' loop
To: None <current-users@NetBSD.ORG>
From: Greg Wohletz <greg@duke.CS.UNLV.EDU>
List: current-users
Date: 05/21/1996 10:48:35
Recently someone mentioned they were having a problem with quotacheck.
A few days later I ran into what i suspect is the same problem. What
happened is that in a world writable directory someone created a file
via NFS as root. This was mapped to the anonymous user. Over the NFS
protocol this appeared to be the standard nobody user (which is a 16
bit -2 I believe). However on the file system the uid was actually
set to a 32 bit -2 (NetBSD uses 32 bit uids). This number is
4294967294. When quotacheck scans the file system there is a point
where it loops from 0 to the largest uid found on the system. When
this value is 4294967294 quotacheck takes a very long time to
complete. So long that I've never had the patience to see how long it
actually takes...
Anyway use find to search your file system for files owned by uid
4294967294 and chown them to nobody (or something). Then I would
recommend you update your exports file to contain the -maproot=nobody
option to prevent new files like this from being created.
Lastly, the quotacheck algorithm needs to be modified to better hand
such sparse uid space cases. The other question is does it make sense
for the NFS code to default mapping root queries to uid 4294967294?
--Greg