DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11514>. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE.
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=11514 MPM of worker leads to Apache stalling (child exits) Summary: MPM of worker leads to Apache stalling (child exits) Product: Apache httpd-2.0 Version: 2.0.39 Platform: Other URL: http://netlab1.usu.edu OS/Version: Other Status: NEW Severity: Major Priority: Other Component: worker AssignedTo: bugs@httpd.apache.org ReportedBy: [EMAIL PROTECTED] Apache 2.0.39 on UnixWare 7.11. Building for MPM of forked works. But MPM of worker creates the problem, which follows. Server loads ok, services an initial request for / (page and two short grahics). Thereafter all client requests stall because server is in trouble. If I reduce the number of childern to 1 then a connection can keep going and going, but the next encounters the error. The main process is running, but error.log shows a child encounterd a segment fault. I tried truss on the running program and it shows the same thing, but well buried. Below is a section of truss output when using max children of 1. Suspects are serialized accept(), and interproccess locking. UnixWare 7.11 needs serialized accept() and apparently the configure script and minions decide upon a pthread mutex. That should be ok, but maybe is not. Trying to coerce the mutex into say FCNTL or SYSVSEM has not been successful (configure has beaten me several times, drats). Sources compiled with UnixWare cc, not gnu stuff. Build script (short) for failing case is: $ cat myway #! /bin/sh ./configure \ --prefix=/opt/lib/httpd3 \ --enable-http \ --enable-auth-anon \ --enable-mime-magic \ --enable-cern-meta \ --enable-expires \ --enable-headers \ --enable-unique-id \ --enable-info \ --enable-cgi \ --enable-cgid \ --enable-speling \ --enable-rewrite \ --enable-so \ --enable-modules-shared=all \ --with-mpm=worker Snippet of truss near seg fault line: 11231: fcntl(28, F_GETFL, 0x00000000) = 2 11231: fcntl(28, F_SETFL, 0x00000082) = 0 11231: read(28, " G E T / s e r v e r -".., 8000) = 493 11231: xstat(2, "/home/ftp/server-status/", 0xBFE309BC) Err#2 ENOENT 11231: lxstat(2, "/home", 0xBFE3099C) = 0 11231: lxstat(2, "/home/ftp", 0xBFE3099C) = 0 11231: lxstat(2, "/home/ftp/server-status", 0xBFE3099C) Err#2 ENOENT 11231: getpid() = 11231 [ 11180 ] 11231: open("/etc/resolv.conf", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE3003C) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE3007C) = 0 11231: brk(0x08307D48) = 0 11231: read(29, " d o m a i n u s u . e".., 8192) = 124 11231: read(29, 0x08301FE0, 8192) = 0 11231: close(29) = 0 11231: open("/etc/netconfig", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE303E8) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE30428) = 0 11231: read(29, " t c p\t t p i _ c o t s".., 8192) = 1143 11231: lseek64(29, -1069, 1) = 74 11231: close(29) = 0 11231: open("/etc/hosts", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE302C8) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE30308) = 0 11231: read(29, " # i d e n t\t " @ ( # )".., 8192) = 219 11231: read(29, 0x08301FE0, 8192) = 0 11231: close(29) = 0 11231: xsocket(UW71|XPG4, AF_INET, SOCK_DGRAM, 0) = 29 11231: xconnect(UW71|XPG4, 29, 0x082927F0, 16) = 0 11231: xsendmsg(UW71|XPG4, 29, 0xBFE2F7CC, 0) = 43 11231: poll(0xBFE2F5C0, 1, 5000) = 1 11231: xrecvmsg(UW71|XPG4, 29, 0xBFE2F7C4, 0) = 176 11231: close(29) = 0 11231: open("/etc/services", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE302D8) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE30318) = 0 11231: read(29, " # i d e n t\t " @ ( # )".., 8192) = 3000 11231: lseek64(29, -1811, 1) = 1189 11231: close(29) = 0 11231: open("/etc/hosts", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE2FFA0) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE2FFE0) = 0 11231: read(29, " # i d e n t\t " @ ( # )".., 8192) = 219 11231: read(29, 0x08304130, 8192) = 0 11231: close(29) = 0 11231: xsocket(UW71|XPG4, AF_INET, SOCK_DGRAM, 0) = 29 11231: xconnect(UW71|XPG4, 29, 0x082927F0, 16) = 0 11231: xsendmsg(UW71|XPG4, 29, 0xBFE2F32C, 0) = 29 11231: poll(0xBFE2F120, 1, 5000) = 1 11231: xrecvmsg(UW71|XPG4, 29, 0xBFE2F324, 0) = 153 11231: close(29) = 0 11231: open("/usr/lib/ns.so", O_RDONLY, 027770602404) = 29 11231: fxstat(2, 29, 0xBFE2FFB4) = 0 11231: close(29) = 0 11231: getpid() = 11231 [ 11180 ] 11231: open("/etc/netconfig", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE302F0) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE30330) = 0 11231: read(29, " t c p\t t p i _ c o t s".., 8192) = 1143 11231: lseek64(29, -999, 1) = 144 11231: close(29) = 0 11231: open("/dev/udp", O_RDWR, 01006426120) = 29 11231: ioctl(29, I_FIND, "timod") = 0 11231: ioctl(29, I_PUSH, "timod") = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: ioctl(29, I_STR, 0xBFE3031C) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: getrlimit(RLIMIT_NOFILE, 0xBFE30350) = 0 11231: ioctl(29, I_FLUSH, FLUSHRW) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: ioctl(29, I_STR, 0xBFE30240) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: fcntl(29, F_SETFD, 0x00000001) = 0 11231: ioctl(29, I_GETTP, 0x00000000) = 3 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: sigprocmask(SIG_BLOCK, 0xBFE30320, 0xBFE30374) = 0 11231: ioctl(29, I_STR, 0xBFE30310) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30374, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: ioctl(29, I_GETTP, 0x00000000) = 3 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: ioctl(29, I_STR, 0xBFE3028C) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: brk(0x08319D48) = 0 11231: getpid() = 11231 [ 11180 ] 11231: ioctl(29, I_GETTP, 0x00000000) = 3 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: ioctl(29, I_STR, 0xBFE30304) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: getrlimit(RLIMIT_NOFILE, 0xBFE3030C) = 0 11231: ioctl(29, I_GETTP, 0x00000000) = 3 11231: putmsg(29, 0xBFE302D8, 0xBFE302CC, 0) = 0 11231: poll(0xBFE30350, 1, 3000) = 1 11231: ioctl(29, I_GETTP, 0x00000000) = 3 11231: getmsg(29, 0xBFE302D4, 0x08299370, 0xBFE302E8) = 0 11231: ioctl(29, I_GETTP, 0x00000000) = 3 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: close(29) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11231: sigprocmask(SIG_SETMASK, 0xBFE30F5C, 0x00000000) = 0 11231: brk(0x08311D48) = 0 11231: open("/etc/services", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE3044C) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE3048C) = 0 11231: brk(0x08309D48) = 0 11231: read(29, " # i d e n t\t " @ ( # )".., 8192) = 3000 11231: read(29, 0x08306138, 8192) = 0 11231: close(29) = 0 11231: open("/etc/netconfig", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE30854) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE30894) = 0 11231: read(29, " t c p\t t p i _ c o t s".., 8192) = 1143 11231: lseek64(29, -498, 1) = 645 11231: close(29) = 0 11231: open("/etc/hosts", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE3040C) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE3044C) = 0 11231: read(29, " # i d e n t\t " @ ( # )".., 8192) = 219 11231: read(29, 0x08306138, 8192) = 0 11231: close(29) = 0 11231: xsocket(UW71|XPG4, AF_INET, SOCK_DGRAM, 0) = 29 11231: xconnect(UW71|XPG4, 29, 0x082927F0, 16) = 0 11231: xsendmsg(UW71|XPG4, 29, 0xBFE2F798, 0) = 29 11231: poll(0xBFE2F58C, 1, 5000) = 1 11231: xrecvmsg(UW71|XPG4, 29, 0xBFE2F790, 0) = 75 11231: close(29) = 0 11231: xsocket(UW71|XPG4, AF_INET, SOCK_DGRAM, 0) = 29 11231: xconnect(UW71|XPG4, 29, 0x082927F0, 16) = 0 11231: xsendmsg(UW71|XPG4, 29, 0xBFE2F798, 0) = 37 11231: poll(0xBFE2F58C, 1, 5000) = 1 11231: xrecvmsg(UW71|XPG4, 29, 0xBFE2F790, 0) = 83 11231: close(29) = 0 11231: open("/etc/netconfig", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE30854) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE30894) = 0 11231: read(29, " t c p\t t p i _ c o t s".., 8192) = 1143 11231: lseek64(29, -1069, 1) = 74 11231: close(29) = 0 11231: open("/etc/hosts", O_RDONLY, 0666) = 29 11231: ioctl(29, TCGETS, 0xBFE3040C) Err#25 ENOTTY 11231: fxstat(2, 29, 0xBFE3044C) = 0 11231: read(29, " # i d e n t\t " @ ( # )".., 8192) = 219 11231: read(29, 0x08306138, 8192) = 0 11231: close(29) = 0 11231: xsocket(UW71|XPG4, AF_INET, SOCK_DGRAM, 0) = 29 11231: xconnect(UW71|XPG4, 29, 0x082927F0, 16) = 0 11231: xsendmsg(UW71|XPG4, 29, 0xBFE2F798, 0) = 29 11231: poll(0xBFE2F58C, 1, 5000) = 1 11231: xrecvmsg(UW71|XPG4, 29, 0xBFE2F790, 0) = 153 11231: close(29) = 0 11231: sysconfig(CLK_TCK) = 100 11231: Incurred fault #5, FLTACCESS %pc = 0x080C5414 11231: siginfo: SIGSEGV SEGV_ACCERR addr=0xBFE2CA00 11231: Received signal #11, SIGSEGV [caught] 11231: siginfo: SIGSEGV SEGV_ACCERR addr=0xBFE2CA00 11180: Received signal #18, SIGCLD, in poll() [default] 11180: siginfo: SIGCLD CLD_KILLED pid=11231 uid=0 status=0x000B 11231: *** process killed *** 11182: block(0x00000000) = 0 11182: prepblock(0xBFE02000, 0xBFE02000, 3) = 0 11180: poll(0x080479B4, 0, 1000) = 0 11180: waitsys(P_ALL, 0, 0x08047B28, WEXITED|WTRAPPED|WUNTRACED|WNOHANG) = 0 11180: write(21, " [ S u n A u g 0 4 ".., 88) = 88 11180: waitsys(P_ALL, 0, 0x08047B28, WEXITED|WTRAPPED|WUNTRACED|WNOHANG) = 0 11180: poll(0x080479B4, 0, 1000) = 0 11180: waitsys(P_ALL, 0, 0x08047B28, WEXITED|WTRAPPED|WUNTRACED|WNOHANG) = 0 11182: read(19, 0x08047C0B, 1) (sleeping...) 11180: poll(0x080479B4, 0, 1000) = 0 11180: waitsys(P_ALL, 0, 0x08047B28, WEXITED|WTRAPPED|WUNTRACED|WNOHANG) = 0 11180: poll(0x080479B4, 0, 1000) = 0 11180: waitsys(P_ALL, 0, 0x08047B28, WEXITED|WTRAPPED|WUNTRACED|WNOHANG) = 0 11180: poll(0x080479B4, 0, 1000) = 0 repeats... 11180: poll(0x080479B4, 0, 1000) = 0 11180: waitsys(P_ALL, 0, 0x08047B28, WEXITED|WTRAPPED|WUNTRACED|WNOHANG) = 0 11180: Received signal #15, SIGTERM, in poll() [caught] 11180: siginfo: SIGTERM pid=11250 uid=0 11180: poll(0x080479B4, 0, 1000) Err#4 EINTR 11180: sigprocmask(SIG_SETMASK, 0xBFE727CC, 0x00000000) = 0 11180: sigprocmask(SIG_SETMASK, 0xBFE7288C, 0x00000000) = 0 11180: setcontext(0x080474F4) 11180: write(20, " $", 1) = 1 11180: write(20, " $", 1) = 1 11180: write(20, " $", 1) = 1 11180: write(20, " $", 1) = 1 11180: write(20, " $", 1) = 1 11180: write(20, " $", 1) = 1 11182: read(19, " $", 1) = 1 11182: write(21, " [ S u n A u g 0 4 ".., 103) = 103 11182: _lwp_kill(2, SIGHUP) = 0 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) = 0 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: sigaction(SIGWAITING, 0x08047B50, 0x00000000) = 0 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 EINVAL 11182: unblock(0xBFE728A8, 0xBFE728A8, 4) Err#22 etc Finally, the obligatory uname info: $ uname -a UnixWare netlab1 5 7.1.1 i386 x86at SCO UNIX_SVR5 Thanks, Joe Doupnik [EMAIL PROTECTED] Utah State University --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]