[Mauiusers] Maui/Torque and Fairshare with secondary Unix groups

Bas van der Vlies basv at sara.nl
Fri Jan 4 03:12:36 MST 2008


Chris Samuel wrote:
> ----- "Bas van der Vlies" <basv at sara.nl> wrote:
> 
>> Happy new year everyone,
> 
> Condiments of the season to all! :-)
> 
>>   I had some time to examine the source of maui and found two ways to
>> implement this functionality in maui. So we are not depended anymore
>> on the user primary group for Fairshare or specifying some
>> commandline parameters for qsub.
> 
> That's great.
> 
Thanks

>> Here are the two solutions:
>>   1) Introduce a new parameter: FSGROUPS, eg:
>>      FSGROUPS one two three
>>
>>     When a job is submitted:
>>      a) check if the user is a member of one of this groups
>>      b) if yes then set the credentials to the matching group.
> 
> That's quite nice, though with the possibility of its list and the
> FS config getting out of step (when you add to one and forget the other).
> 
This was ny problem also, but it is for now the easiest one to implement.

>> 2) When a job is submitted:
>>   a) get all the groups where the user is a member of with the
>> "getgrouplist" function. I do not know if this function is available
>> on all platforms.
> 
> I doubt it, the man page on Ubuntu says:
> 
> CONFORMING TO
>        This function is non-standard; it appears on most BSDs.
> 
> BUGS
>        The glibc 2.3.2 implementation of this function  is  broken:  it  over$B!>(B
>        writes memory when the actual number of groups is larger than *ngroups.
> 
> I know that for Torque when I was having problems with initgroups() not
> using LDAP under AIX5.x Dave Singleton contributed his version (which is
> more friendly to LDAP servers on Linux too) as a replacement; so perhaps
> the solution for this issue in Maui is to take the same approach and write
> a portable version (with a different name to avoid clashes).
> 
I have also read that message on the manpage. I have made a little utility 
and it did not segv on ubuntu/debian. The source is in the manpage, it will 
crash with glibc 2.3.2 is the note ;-)

I have found the source for getgrouplist and it scans all the groups and 
checks if the user is a member. This can be very slow if we have many unix 
groups. I encounterd this when i used acl_slopp_grp setting in torque. I 
wrote a patch for it.

>>   b) Then check if for one of the user groups a fairshare target is set
>>   c) if yes then set the credentials to this group.
> 
> I think this is a better way to go that the first option, if we can get
> a portable way of listing all the groups of a user.
> 
I will start with the first option so we have something and then look at a 
"portable" getgrouplist function.

> cheers!
> Chris
> --
> Christopher Samuel - (03) 9925 4751 - Systems Manager
>  The Victorian Partnership for Advanced Computing
>  P.O. Box 201, Carlton South, VIC 3053, Australia
> VPAC is a not-for-profit Registered Research Agency
> _______________________________________________
> mauiusers mailing list
> mauiusers at supercluster.org
> http://www.supercluster.org/mailman/listinfo/mauiusers


-- 
--
********************************************************************
*                                                                  *
*  Bas van der Vlies                     e-mail: basv at sara.nl      *
*  SARA - Academic Computing Services    phone:  +31 20 592 8012   *
*  Kruislaan 415                         fax:    +31 20 6683167    *
*  1098 SJ Amsterdam                                               *
*                                                                  *
********************************************************************


More information about the mauiusers mailing list