[Tfug] Apache 2.0 on Linux 2.2

Chris tfug@tfug.org
Thu Jul 4 03:44:01 2002


On Wed, 3 Jul 2002 00:33:57 -0700
"John Gruenenfelder" <johng@bach.as.arizona.edu> wrote:

> I decided to play around with Apache 2.0 (from Debian unstable) on my
> firewall box.  I had previosly had Apache 1.3 working fine on this
> machine.
> 
> I have apache2 configured now, there not being much extra to be done. 
> When I try to start it, I get this error:
> 
> [Wed Jul 03 00:25:02 2002] [crit] (22)Invalid argument: Unable to
> create scoreboard (anonymous shared memory failure)
> 
> I am running kernel 2.2.19.  Somewhere I saw mention that I should
> have SYSV IPC compiled into the kernel, and I do have that.  There
> also exist shmall and shmmax in /proc/sys/kernel/.
> 
> Can apache2 work with this kernel?  I didn't see it mentioned anywhere
> that I need 2.4 with its tmpfs on /dev/shm... is there something
> similar for 2.2?
> 
> None of this is really critical... I am just confused...
> 
> 
> -- 
> --John Gruenenfelder    Research Assistant, Steward Observatory, U of
> Arizona johng@as.arizona.edu
> "This is the most fun I've had without being drenched in the blood
> of my enemies!"
>         --Sam of Sam & Max

John-

A couple of basics first.  How are you starting apache?  Try apachectl
restart (as root) and see what happens.  Try commenting out the
ScoreBoardFile entry (if its not already) in httpd.conf and delete any
files on your harddisk that entry refered to.  Make sure you've booted
the sysvipc kernel.  Check /proc/sysvipc/shm to make sure, you should
have info about your current shared memory segments there.

You might have a stale shared memory segment hanging around.  Use ipcs
-m or -p to find out which segment(s) apache has hold of.  The pid
should match that of one of your apache parents.  You can use ipcrm to
remove any segment not properly accounted for.  Restart apache
afterwards.

That's all I can think of without poking around in scoreboard.c (in the
sources for 2.0.39), which you might want to do if none of this works. 
Search for your error message and see if you can see what the source
code says will trigger it and work back from there.

-C-