Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 04 Dec 1998 12:32:24 -0400
From:      Luis Munoz <lem@cantv.net>
To:        freebsd-hackers@FreeBSD.ORG, freebsd-isp@FreeBSD.ORG
Subject:   Problem with DB password database?
Message-ID:  <3.0.6.32.19981204123224.00b6ac90@pop.cantv.net>

next in thread | raw e-mail | index | archive | help

Hi there:

As part of a stress testing excercise we're doing in a set of
FreeBSD servers, we created 250000+ accounts on each machine
(yes, they work fine with those numbers :)

We used five machines, with five different user populations.
The idea is to simulate 1.2M+ users for POP/SMTP service. During
this excercise, we found that one of the machine did this:

bash# pwd_mkdb -p /etc/master.passwd
put: Unknown error: 0

or something *very* similar to this as I'm writing from memory.

The only difference among the five machines, is the usernames.
Each machine has a unique set of usernames selected according
to an MD5 based algorithm. There are no duplicate users on any
machines yet all the users share the same UID (which is not
important to us since there's no shell access).

I did two tests after this (repeatable) failure.

(a) pwd_mkdb'ed the master.passwd from another server. This
	worked flawlessly.
(b) Removed 50000 users from the original master.passwd and
	pwd_mkdb'ed it. This also worked flawlessly.

My theory, which I would like to hear opinions about, is that
this particular set of users is generating a problem with DB
(perhaps too many collisions?) thus the failure in put() for
no apparent error.

I even did a ktrace of the pwd_mkdb and found that it is not
getting any signals or errors. DB 'decides' to terminate.
It also strikes me that pwd_mkdb is terminating somewhere
between the middle and two thirds of the file.

I have the [very big] master.passwd available if someone 
wants to take a look at it and try to repeat the 'experiment'.
I don't think this is a very serious issue IF the problem
is triggered by the size of the database AND particular
conditions within it, as I doubt somebody will 'attempt
this at home' :)

BTW, this is on 2.2.6-RELEASE w 256M RAM and plenty of disk 
space. On this scenario, a pwd_mkdb -u takes less than a
minute. pwd_mkdb -u with my 'multi -u' patches takes about
the same ammount of time for 10 users. A full pwd_mkdb takes
about 110 minutes.

Regards.

-lem

 ------------
Luis E. Muņoz
Centro de Operaciones de la Red
CANTV Servicios

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.6.32.19981204123224.00b6ac90>