Cyrus, Solaris 10, ZFS? (and NIS?)

Igor Brezac igor at ipass.net
Thu Oct 5 22:27:41 EDT 2006



> -----Original Message-----
> From: info-cyrus-bounces at lists.andrew.cmu.edu [mailto:info-cyrus-
> bounces at lists.andrew.cmu.edu] On Behalf Of Robert Banz
> Sent: Thursday, October 05, 2006 7:34 PM
> To: Chaskiel M Grundman
> Cc: betsys at gsd.harvard.edu; info-cyrus at lists.andrew.cmu.edu
> Subject: Re: Cyrus, Solaris 10, ZFS? (and NIS?)
> 
> 
> On Oct 5, 2006, at 4:46 PM, Chaskiel M Grundman wrote:
> 
> >
> >
> > --On Thursday, October 05, 2006 04:13:18 PM -0400 Elizabeth
> > Schwartz <betsy.schwartz at gmail.com> wrote:
> >
> >> http://www.gsd.harvard.edu/users/betsys/dapptrace.timed
> >
> > The interesting bit seems to be here:
> >      .      . -> mynewstate(0x165769, 0x40404040, 0x0)
> >      .      . -> mycanonifyid(0x165769, 0x0, 0x0)
> >      .      . -> libcyrus_config_getswitch(0x2, 0x11AF55, 0x5)
> >     43      5 <- libcyrus_config_getswitch = 84
> >    135     20 <- mycanonifyid = 292
> >      .      . -> xmalloc(0x5C, 0x11AF5D, 0x5)
> >     38     14 <- xmalloc = 28
> >      .      . -> libcyrus_config_getswitch(0x1, 0x0, 0x1647CB)
> >     40      3 <- libcyrus_config_getswitch = 84
> >      .      . -> xrealloc(0x0, 0x4, 0xE488)
> >     68     14 <- xrealloc = 64
> >      .      . -> xstrdup(0x16871C, 0x4, 0xE488)
> >      .      . -> xmalloc(0x9, 0x2A0031, 0x168724)
> >     30      7 <- xmalloc = 28
> >     94     16 <- xstrdup = 40
> > 8235260 109820 <- mynewstate = 356
> >
> > mynewstate is taking 8s to run, and very little of the time is
> > taken up in local subroutines.
> > auth_unix.c:mynewstate calls getpwnam, and then iterates over all
> > the groups using getgrent(),
> > checking to see what groups the user is in. The fact that imapd
> > does this twice might be a bug, but even if it didn't do it twice,
> > it would still be slow.
> >
> > Is running "getent group" slow?
> 
> Oy yes.
> 
> The only "way" to find out what groups a user is in, of course, is to
> interate over the groups file (or map) and look at the whole list of
> users assigned to a group.  Ugly.
> 
> Now, if you can't think of any reasons you'd actually care about
> someone's group membership, it wouldn't be out of the question to
> remove said junk out of the auth_state function in auth_unix.c.
> Sendmail contains a nice option to turn off initgroups() like
> functionality, perhaps Cyrus could use one as well?

Already done.  man imapd.conf  :)

unix_group_enable: 0

-Igor



More information about the Info-cyrus mailing list