You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Carl Brewer <ca...@bl.echidna.id.au> on 2002/04/07 09:41:18 UTC

Solaris 8, apache 2.0.35 and IPv6?


I'm still having trouble with apache 2.0.35 and solaris 8 with IPv6.

Before I go deeply into it, has anyone else gotten it to work?  I think
it's possibly a name resolution issue, but am not 100% sure yet.  

Anyone?

thanks

Carl




---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Re: Solaris 8, apache 2.0.35 and IPv6?

Posted by Carl Brewer <ca...@bl.echidna.id.au>.
Carl Brewer wrote:

>
>
> I'm still having trouble with apache 2.0.35 and solaris 8 with IPv6. 


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 more 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

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 oprt 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 appologise for the lengthy nature of this email, should I submit this 
to an apache
bug list, or is my machine and/or build broken?

Carl






---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org