[Mailman-Users] The Mailman CGI wrapper encountered a fatal error

Richard Barrett r.barrett at openinfo.co.uk
Wed Nov 5 08:37:50 CET 2003


On Tuesday, November 4, 2003, at 02:19  pm, patkins wrote:

> Jim,
>
> Thanks for the help! I changed all the files in the cgi-bin to both 
> root and mailman just to see if I could execute the files properly and 
> neither worked. I compiled three different times using various flags 
> to set guid, user, group etc. Nothing I do seems to fix this problem. 
> Keep in mind the lists work perfectly! I just can't use the web > admins.
>

The error message you are getting is Mailman's CGI wrapper telling you 
that it has tried to look up the group name  of the GID it was executed 
as and this has failed. It does this test using the getgid and getgrgid 
system calls (see the man pages): the check_caller() function in 
Mailman's $build/src/common.c is used. This check is a precursor to 
checking the group name recovered is the one the wrapper was told to 
expect via --with-cgi-gid on ./configure.

The text of the message you have got is rather unhelpful because it 
does not tell us what GID the wrapper was being executed as, whose 
lookup using getgrgid subsequently failed.

What GID is you Apache server running its child processes as? What does 
the Group directive in your httpd.conf say? Are you assigning a numeric 
GID rather than a group name with the Group directive and, if so, does 
that GID have an entry in your system's group file? If the answer to 
this last question is no, then that is your problem.

Let us know if you find a resolution to this.

You can see the effect of these system calls mentioned above, using 
Python from the command line, although the Mailman wrapper is calling 
the equivalent C functions. For instance:

mailman2:/home/mailman # su httpd
sh-2.05$ id
uid=598(httpd) gid=620(httpd) groups=620(httpd)
sh-2.05$ python
Python 2.2.2 (#3, Feb 11 2003, 16:57:53)
[GCC 2.95.3 20010315 (SuSE)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> import grp, os, sys
 >>> os.getgid()
620
 >>> grp.getgrgid(os.getgid())
('httpd', '*', 620, [])
 >>> sys.exit()
sh-2.05$


> -p
>
> On 03/Nov/2003 22:04:08, Jim Cole  wrote:
>> On Monday, November 3, 2003, at 12:03 PM, patkins wrote:
>>
>>> The user and group exist:
>>>
>>> group > mailman:x:506:
>>> passwd > mailman:x:506:506::/usr/local/mailman:/dev/null
>> ....
>>> Mailman CGI error!!!
>>> The Mailman CGI wrapper encountered a fatal error. This entry is 
>>> being
>>> stored in your syslog:
>>> Failure to find group name mailman.  Try adding this group
>>> to your system, or re-run configure, providing an
>>> existing group name with the command line option --with-cgi-gid.
>>
>> Have you tried verifying the group outside of Mailman? For example 
>> have
>> you tried executing chgrp on some file using the mailman group? If 
>> that
>> works as expected, double check the group associated with the CGI
>> wrappers in Mailman's cgi-bin directory. A quick look at the code 
>> seems
>> to imply that either your group file is somehow broken or the group
>> settings are incorrect for one or more of your wrapper files.
>>
>> Jim
>>
-----------------------------------------------------------------------
Richard Barrett                               http://www.openinfo.co.uk





More information about the Mailman-Users mailing list