www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sean Garagan <gara...@ug.cs.dal.ca>
Subject Re: os-unixware/1553: Apache hangs on request
Date Mon, 15 Dec 1997 18:50:00 GMT
The following reply was made to PR os-unixware/1553; it has been noted by GNATS.

From: Sean Garagan <garagan@ug.cs.dal.ca>
To: Dean Gaudet <dgaudet@arctic.org>
Cc: apbugs@hyperreal.org
Subject: Re: os-unixware/1553: Apache hangs on request
Date: Mon, 15 Dec 1997 14:41:24 -0400

 On Mon, Dec 15, 1997 at 02:02:32PM -0400, Dean Gaudet wrote:
 > Is your ServerRoot on an NFS partition?  If so try using "LockFile
 > /var/tmp/htlock" to move the lockfile elsewhere.
 > 
 No, the partition is local.
 
 > Otherwise, check if there are any unixware patches.  Traditionally
 > unixware/sco have needed to have various patches applied before they'll
 > run apache reliably.
 > 
 I will check this shortly.  I am quickly realizing just how broken Unixware
 seems to be :)
 
 > Another useful thing you can do is try using truss/ktrace/strace
 > (whichever your system has) on the children after they've stopped serving. 
 > To make this easier you probably should use MinSpareServer 1 and
 > MaxSpareServer 2.
 > 
 After setting Min to 1 and Max to 2, I got the parent with 2 children.
 Running truss on the processes gives the following:
 
 getmsg(15, 0x0804770C, 0x08047700, 0x0804771C) (sleeping...)
 
 poll(0x08045850, 1, -1)         (sleeping...)
 
 waitsys(P_ALL, 0, 0x08047850, WEXITED|WTRAPPED|WNOHANG) = 0
 sleep(1)
 
 The order of these goes from the youngest to oldest process id.
 
 When I hit a server that is hanging, truss reports the following:
 
 poll(0x08045850, 1, -1)         (sleeping...)
 poll(0x08045850, 1, -1)                         = 1
 sigaction(SIGUSR1, 0x080477F4, 0x08047830)      = 0
 sigprocmask(SIG_BLOCK, 0x08047754, 0x08047764)  = 0
 getmsg(15, 0x08047774, 0x00000000, 0x08047834)  = 0
 sigprocmask(SIG_SETMASK, 0x08047764, 0x00000000) = 0
 ioctl(15, I_GETTP, 0x00000000)                  = 50
 fxstat(2, 15, 0x08047780)                       = 0
 open("/etc/netconfig", O_RDONLY, 0666)          = 3
 ioctl(3, TCGETS, 0x080471D0)                    Err#25 ENOTTY
 ioctl(3, I_GETTP, 0x00000000)                   Err#25 ENOTTY
 fxstat(2, 3, 0x08047210)                        = 0
 read(3, " t c p\t t p i _ c o t s".., 8192)     = 806
 read(3, 0x0809FB30, 8192)                       = 0
 lseek(3, 0, 0)                                  = 0
 read(3, " t c p\t t p i _ c o t s".., 8192)     = 806
 read(3, 0x0809FB30, 8192)                       = 0
 close(3)                                        = 0
 xstat(2, "/dev/tcp", 0x08047780)                = 0
 open("/dev/tcp", O_RDWR, 027776033624)          = 3
 ioctl(3, I_FIND, "sockmod")                     = 0
 ioctl(3, I_PUSH, "sockmod")                     = 0
 ioctl(3, I_SETCLTIME, 0x08047718)               = 0
 ioctl(3, I_SWROPT, 0x00000002)                  = 0
 sigprocmask(SIG_BLOCK, 0x080476A0, 0x080476B0)  = 0
 ioctl(3, I_STR, 0x08047668)                     = 0
 sigprocmask(SIG_SETMASK, 0x080476B0, 0x00000000) = 0
 ioctl(3, I_GETSIG, 0x080476E0)                  Err#22 EINVAL
 sigprocmask(SIG_BLOCK, 0x080475C4, 0x080475D4)  = 0
 ioctl(3, I_STR, 0x08047580)                     = 0
 sigprocmask(SIG_SETMASK, 0x080475D4, 0x00000000) = 0
 sigprocmask(SIG_BLOCK, 0x08047754, 0x08047764)  = 0
 ioctl(15, I_FDINSERT, 0x08047808)               = 0
 fcntl(15, F_GETFL, 0x00000000)                  = 2
 getmsg(15, 0x0804770C, 0x08047700, 0x0804771C) (sleeping...)
 
 I hope this helps, thanks for the quick response.
 Sean

Mime
View raw message