One or Four?

Chuck Swiger cswiger at mac.com
Sat Feb 18 00:40:54 UTC 2012


On Feb 17, 2012, at 4:11 PM, Devin Teske wrote:
>> However, for whatever reasons, the overwhelming majority of folks using MacOS
>> X don't have problems using a single root partition, and while they sometimes do
>> fill up their disks, that's a situation which they should be able to recover from
>> without needing expert assistance.  I don't recall having unusual issues in running
>> a partition out of space under FreeBSD, either, or difficulty fixing things
>> afterwards--
> 
> Recipe for disaster:
> 
> 1. You have a cron-job that pulls down /etc/master.passwd daily
> 2. Your cron-job also runs pwd_mkdb after "SUP"ing down /etc/master.passwd

Yes, I agree that this is a recipe for disaster; the reasons not very correlated to disk space, however.

Even twenty years ago, handling this via YP/NIS or NetInfo would have made more sense, and nowadays folks would be far more likely to use LDAP as the network user database, instead of pushing system password database changes via SUP or similar replication mechanism locally to individual hosts.

> 3. A program fills "/"
> 4. cron fires
> 5. pwd_mkdb can't generate databases because not enough room on filesystem
> 6. System can no longer be logged into

#5 does not imply #6: if pwd_mkdb can't build a temporary version to /etc/pwd.db.tmp & /etc/spwd.db.tmp, it will exit with an error rather than invoke rename(2) to replace the working version of the password database with something that might be broken.

To be very specific, I would expect one to get:

"/: write failed, filesystem is full
pwd_mkdb: /etc/pwd.db to /etc/pwd.db.tmp: No space left on device"

> 7. System is rebooted
> 8. Can't log in (not even as root)
> 9. Go into single-user mode
> 10. No space to work in
> 
> Sure... you can call it an "edge-case," but it's pretty common and this is only
> one of a myriad of ways we can reproduce the problem of filling-up "/" to cause
> major headaches.


I've never heard of such a thing happening to a real FreeBSD system in the past decade or more.  The closest match to the issue results in a failure of adduser(8) or pw(8) to add new users, but existing users continued to work fine.

Regards,
-- 
-Chuck



More information about the freebsd-questions mailing list