www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <dgau...@arctic.org>
Subject Re: os-unixware/1553: Apache hangs on request
Date Mon, 15 Dec 1997 19:00:00 GMT
The following reply was made to PR os-unixware/1553; it has been noted by GNATS.

From: Dean Gaudet <dgaudet@arctic.org>
To: Sean Garagan <garagan@ug.cs.dal.ca>
Cc: apbugs@hyperreal.org
Subject: Re: os-unixware/1553: Apache hangs on request
Date: Mon, 15 Dec 1997 11:00:08 -0800 (PST)

 On Mon, 15 Dec 1997, Sean Garagan wrote:
 
 > getmsg(15, 0x0804770C, 0x08047700, 0x0804771C) (sleeping...)
 
 I'm reminded of how much I despise sysvr4 STREAMS ... they obscure so much
 useful stuff under abstractions.   This is *probably* an accept()
 call.
 
 > poll(0x08045850, 1, -1)         (sleeping...)
 
 This is select() implemented as poll() under the covers.
 
 > waitsys(P_ALL, 0, 0x08047850, WEXITED|WTRAPPED|WNOHANG) = 0
 > sleep(1)
 
 This is the parent.
 
 > 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...)
 
 Look at all that fun stuff!  How ugly.  What is it smoking with that
 fcntl() call?  Interesting.
 
 Ok, wild guess time, try adding -DUSE_FCNTL_SERIALIZED_ACCEPT to
 EXTRA_CFLAGS in Configure and rebuilding the entire server.  I'm
 guessing unixware doesn't like having the same socket inside an
 accept() and a select() at the same time.
 
 Dean
 

Mime
View raw message