httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 7811] New: - cannot start apache 2.0.35 (or 2.0.32) with any IPv6 addresses on Solaris 8
Date Sun, 07 Apr 2002 11:14:10 GMT
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=7811>.
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=7811

cannot start apache 2.0.35 (or 2.0.32) with any IPv6 addresses on Solaris 8

           Summary: cannot start apache 2.0.35 (or 2.0.32) with any IPv6
                    addresses on Solaris 8
           Product: Apache httpd-2.0
           Version: 2.0.35
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: Blocker
          Priority: Other
         Component: All
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: carl@bl.echidna.id.au


I'm not able to get apache 2.0.35 to start if any IPv6 support is enabled :

The only way I've been able to get it to start is to explicitly specify non-IPv6
addresses via Listen directives, or to expliclty tell it to compile without IPv6
(bad!)

This may be ok for some(!) but I want to use IPv6 on this box :) It's hosting a
number of IPv6-informational web pages for starters!

Here's my config information :

[rollcage]/opt/local/apache2/bin{242} : ./httpd -V
Server version: Apache/2.0.35
Server built:   Apr  6 2002 22:58:05
Server's Module Magic Number: 20020329:0
Architecture:   32-bit
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_MMAP
-D APR_HAVE_IPV6
-D APR_USE_PROC_PTHREAD_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D HTTPD_ROOT="/usr/local/apache2"
-D SUEXEC_BIN="/usr/local/apache2/bin/suexec"
-D DEFAULT_ERRORLOG="logs/error_log"
-D SERVER_CONFIG_FILE="conf/httpd.conf"

[rollcage]/opt/local/apache2/bin{244} : gcc -v
Reading specs from /opt/local/lib/gcc-lib/sparc-sun-solaris2.8/3.0.2/specs
Configured with: ./configure --prefix=/opt/local : (reconfigured) ./configure --pr
efix=/opt/local --disable-java
Thread model: posix
gcc version 3.0.2

[rollcage]/opt/local/apache2/bin{245} : uname -a
SunOS rollcage 5.8 Generic sun4m sparc SUNW,SPARCstation-10

I compiled it with ./configure --enable-ipv6, but I think it automagically
includes IPv6 anyway on Solaris 8 servers?

As above, if I tell it not to use IPv6 addresses (you can see the various things
I've
tried below ...) :
#Listen 12.34.56.78:80
#Listen 80
#Listen [3ffe:8001:5:2:a00:20ff:fe18:a87d]:80
#Listen [::1]:80
#Listen rollcage6.bl.echidna.id.au:80
#Listen localhost:80
Listen 0.0.0.0:80
#Listen [::]:80
#Listen [fe80::a00:20ff:fe18:a87d]:80

It starts, and serves pages just fine using IPv4.  But, if I ask it to use IPv6
it opens the network port for listening (I assume, I don't get connection
refused, just a server that never replies to any queries when I telnet to
port 80).  Nothing gets logged.  Truss ends up showing this :

[rollcage]/opt/local/apache2/bin{247} : truss -t open -f ./httpd
18377:  open("/var/ld/ld.config", O_RDONLY)             Err#2 ENOENT
18377:  open("/usr/openwin/lib/libaprutil.so.0", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libaprutil.so.0", O_RDONLY) = 3
18377:  open("/usr/openwin/lib/libapr.so.0", O_RDONLY)  Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libapr.so.0", O_RDONLY) = 3
18377:  open("/usr/openwin/lib/librt.so.1", O_RDONLY)   Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/librt.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/librt.so.1", O_RDONLY)           = 3
18377:  open("/usr/openwin/lib/libm.so.1", O_RDONLY)    Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libm.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libm.so.1", O_RDONLY)            = 3
18377:  open("/usr/openwin/lib/libsocket.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libsocket.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libsocket.so.1", O_RDONLY)       = 3
18377:  open("/usr/openwin/lib/libnsl.so.1", O_RDONLY)  Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libnsl.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libnsl.so.1", O_RDONLY)          = 3
18377:  open("/usr/openwin/lib/libresolv.so.2", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libresolv.so.2", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libresolv.so.2", O_RDONLY)       = 3
18377:  open("/usr/openwin/lib/libdl.so.1", O_RDONLY)   Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libdl.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libdl.so.1", O_RDONLY)           = 3
18377:  open("/usr/openwin/lib/libexpat.so.0", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libexpat.so.0", O_RDONLY) = 3
18377:  open("/usr/openwin/lib/libpthread.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libpthread.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libpthread.so.1", O_RDONLY)      = 3
18377:  open("/usr/openwin/lib/libc.so.1", O_RDONLY)    Err#2 ENOENT
18377:  open("/usr/local/apache2/lib/libc.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libc.so.1", O_RDONLY)            = 3
18377:  open("/usr/openwin/lib/libaio.so.1", O_RDONLY)  Err#2 ENOENT
18377:  open("/usr/lib/libaio.so.1", O_RDONLY)          = 3
18377:  open("/usr/openwin/lib/libmp.so.2", O_RDONLY)   Err#2 ENOENT
18377:  open("/usr/lib/libmp.so.2", O_RDONLY)           = 3
18377:  open("/usr/platform/SUNW,SPARCstation-10/lib/libc_psr.so.1", O_RDONLY) Err
#2 ENOENT
18377:  open("/usr/openwin/lib/libthread.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/libthread.so.1", O_RDONLY)       = 3
18377:  open("/usr/share/lib/zoneinfo/Australia/Victoria", O_RDONLY) = 3
18377:  open("/usr/local/apache2/conf/httpd.conf", O_RDONLY) = 3
18377:  open("/etc/netconfig", O_RDONLY)                = 3
18377:  open("/dev/udp", O_RDONLY)                      = 3
18377:  open64("/etc/.name_service_door", O_RDONLY)     = 4
18377:  open("/etc/nsswitch.conf", O_RDONLY)            = 4
18377:  open("/usr/openwin/lib/nss_files.so.1", O_RDONLY) Err#2 ENOENT
18377:  open("/usr/lib/nss_files.so.1", O_RDONLY)       = 4
18377:  open("/etc/passwd", O_RDONLY)                   = 4
18377:  open64("/etc/.name_service_door", O_RDONLY)     = 4
18377:  open("/etc/group", O_RDONLY)                    = 4



And there it sits.

If I go to more detail on the truss, and drop the -t open I get a lot more, but the
(I think!) relevant bits are :

18380:  open("/etc/group", O_RDONLY)                    = 4
18380:  fstat64(4, 0xEFFFCF50)                          = 0
18380:  brk(0x000E2BC8)                                 = 0
18380:  brk(0x000E4BC8)                                 = 0
18380:  ioctl(4, TCGETA, 0xEFFFCEDC)                    Err#25 ENOTTY
18380:  read(4, " r o o t : : 0 : r o o t".., 8192)     = 383
18380:  llseek(4, 0xFFFFFFFFFFFFFFD4, SEEK_CUR)         = 339
18380:  close(4)                                        = 0
18380:  stat("/opt/local/apache/htdocs", 0xEFFFF2D0)    = 0
18380:  brk(0x000E4BC8)                                 = 0
18380:  brk(0x000E6BC8)                                 = 0
18380:  brk(0x000E6BC8)                                 = 0
18380:  brk(0x000E8BC8)                                 = 0
18380:  brk(0x000E8BC8)                                 = 0
18380:  brk(0x000EABC8)                                 = 0
18380:  brk(0x000EABC8)                                 = 0
18380:  brk(0x000ECBC8)                                 = 0
18380:  brk(0x000ECBC8)                                 = 0
18380:  brk(0x000EEBC8)                                 = 0
18380:  brk(0x000EEBC8)                                 = 0
18380:  brk(0x000F0BC8)                                 = 0
18380:  brk(0x000F0BC8)                                 = 0
18380:  brk(0x000F2BC8)                                 = 0
18380:  brk(0x000F2BC8)                                 = 0
18380:  brk(0x000F4BC8)                                 = 0
18380:  brk(0x000F4BC8)                                 = 0
18380:  brk(0x000F6BC8)                                 = 0
18380:  brk(0x000F6BC8)                                 = 0
18380:  brk(0x000F8BC8)                                 = 0
18380:  brk(0x000F8BC8)                                 = 0
18380:  brk(0x000FABC8)                                 = 0
18380:  brk(0x000FABC8)                                 = 0
18380:  brk(0x000FCBC8)                                 = 0
18380:  brk(0x000FCBC8)                                 = 0
18380:  brk(0x000FEBC8)                                 = 0
18380:  brk(0x000FEBC8)                                 = 0
18380:  brk(0x00100BC8)                                 = 0
18380:  brk(0x00100BC8)                                 = 0
18380:  brk(0x00102BC8)                                 = 0
18380:  brk(0x00102BC8)                                 = 0
18380:  brk(0x00104BC8)                                 = 0
18380:  brk(0x00104BC8)                                 = 0
18380:  brk(0x00106BC8)                                 = 0
18380:  brk(0x00106BC8)                                 = 0
18380:  brk(0x00108BC8)                                 = 0
18380:  brk(0x00108BC8)                                 = 0
18380:  brk(0x0010ABC8)                                 = 0
18380:  brk(0x0010ABC8)                                 = 0
18380:  brk(0x0010CBC8)                                 = 0
18380:  brk(0x0010CBC8)                                 = 0
18380:  brk(0x0010EBC8)                                 = 0
18380:  brk(0x0010EBC8)                                 = 0
18380:  brk(0x00110BC8)                                 = 0
18380:  brk(0x00110BC8)                                 = 0
18380:  brk(0x00112BC8)                                 = 0
18380:  brk(0x00112BC8)                                 = 0
18380:  brk(0x00114BC8)                                 = 0
18380:  brk(0x00114BC8)                                 = 0
18380:  brk(0x00116BC8)                                 = 0
18380:  brk(0x00116BC8)                                 = 0
18380:  brk(0x00118BC8)                                 = 0
18380:  brk(0x00118BC8)                                 = 0
18380:  brk(0x0011ABC8)                                 = 0
18380:  setsockopt(3, 65535, 4, 0xEFFFF464, 4, 1)       = 0
18380:  setsockopt(3, 65535, 8, 0xEFFFF464, 4, 1)       = 0
18380:  setsockopt(3, 6, 1, 0xEFFFF45C, 4, 1)           = 0
18380:  bind(3, 0x00097ECC, 32, 3)                      = 0
18380:  listen(3, 511, 1)                               = 0
18380:  pipe()                                          = 4 [5]
18380:  fcntl(4, F_GETFL, 0x00000000)                   = 2
18380:  fstat64(4, 0xEFFFF3F0)                          = 0
18380:  fstat64(4, 0xEFFFF3F0)                          = 0
18380:  fcntl(4, F_SETFL, 0x00000082)                   = 0
18380:  brk(0x0011ABC8)                                 = 0
18380:  brk(0x0011CBC8)                                 = 0
18380:  door_return(0x00000000, 0, 0x00000000, 0)       = 0
18380:  mmap(0x00000000, 20480, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_NO
RESERVE|MAP_ANON, -1, 0) = 0xEF3E0000
18380:  mprotect(0xEF3E0000, 4096, PROT_NONE)           = 0
18380:  lwp_create(0xEF3F49E0, LWP_DETACHED|LWP_SUSPENDED, 0xEF3E4DB4) = 4
18380:  lwp_create()    (returning as new lwp ...)      = 0
18380:  lwp_continue(4)                                 = 0
18380:  sigaction(SIGWAITING, 0xEF42EE68, 0x00000000)   = 0
18380:  lwp_schedctl(SC_STATE|SC_BLOCK, -1, 0xEF3E4CB4) = 0
18380:  time()                                          = 1018176473
18380:  lwp_mutex_wakeup(0xEF7F0778)                    = 0
18380:  lwp_mutex_lock(0xEF7F0778)                      = 0
18380:  lwp_mutex_lock(0xEF7F0778)                      = 0
18380:  lwp_mutex_wakeup(0xEF7F0778)                    = 0
18380:  lwp_mutex_lock(0xEF4355C0)                      = 0
18380:  lwp_schedctl(SC_DOOR, 0, 0x00000000)            = 6
18380:  door_bind(6)                                    = 0
18380:  close(6)                                        = 0
18380:  lwp_sema_wait(0x000929F0)       (sleeping...)
18380:  signotifywait()                 (sleeping...)
18380:  lwp_cond_wait(0xEF4355B0, 0xEF4355C0, 0xEF3F4BF0) (sleeping...)
18380:  door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)

wait a few minutes, then this (independant of any attempts to connect to port 80) :

18380:  lwp_cond_wait(0xEF4355B0, 0xEF4355C0, 0xEF3F4BF0) Err#62 ETIME
18380:  time()                                          = 1018176773
18380:  lwp_sema_wait(0x000929F0)       (sleeping...)
18380:  signotifywait()                 (sleeping...)
18380:  lwp_cond_wait(0xEF4355B0, 0xEF4355C0, 0xEF3F4BF0) (sleeping...)
18380:  door_return(0x00000000, 0, 0x00000000, 0) (sleeping...)

And that's it ... it repeats the above chunk every few minutes, apearing to
be stuck in some loop.  Maybe this is a name resolution issue?  I don't know?
Everything else on the machine uses IPv6 with no dramas (OpenSSH, ircII, IPF etc)

It seems to loop over this, nothing shows up when I telnet to port 80 in the
truss.  I have no virtual hosts defined.  Is this a bug? I found no reference to
it in the bug database, or what there is of the FAQ, but I've seen other reports
of the same issue on users@httpd.apache.org.  Apache 1.3.x with Kame patches
works ok on this machine, happily serving over IPv6.  I have forward 
entries for my machine names in the DNS, and entries in /etc/inet/ipnodes, and
name resolution works on the box just fine, although reverse lookups for
IPv6 addresses will not work via the DNS.

Mime
View raw message