You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Stas Bekman <st...@stason.org> on 2003/07/14 17:08:39 UTC

Re: make test fails when calling getaddrinfo() on 255.255.255.255

ColinB wrote:
> I am compiling mod_perl 2.0 on Solaris 9.
> 
> When I run "make test" for mod_perl 2.0 it fails almost immediately
> with
> 
>   file vhost.c, line 232, assertion "rv == APR_SUCCESS" failed
> 
> after it calls apr_sockaddr_info_get() with the hostname
> "255.255.255.255". I think this may have something to do with the
> test's http.conf containing _default_ virtual hostnames.
> 
> apr_sockaddr_info_get() eventually calls getaddrinfo() with the
> nodename "255.255.255.255" which returns EAI_NONAME (no address
> associated with nodename).
> 
> But if I call getaddrinfo() for 255.255.255.255 from another machine
> (which is running Solaris 8 although this may be unrelated), it returns
> 0.
> 
> Is there something wrong with the configuration of my Solaris 9 machine
> - should getaddrinfo() always return 0 for 255.255.255.255 ?

What happens if you add a simple vhost to your httpd.conf without even using 
mod_perl. I bet that this is an apache issue.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


Re: make test fails when calling getaddrinfo() on 255.255.255.255

Posted by Stas Bekman <st...@stason.org>.
ColinB wrote:
> --- Stas Bekman <st...@stason.org> wrote:
> 
>>ColinB wrote:
>>
>>>I am compiling mod_perl 2.0 on Solaris 9.
>>>
>>>When I run "make test" for mod_perl 2.0 it fails almost immediately
>>>with
>>>
>>>  file vhost.c, line 232, assertion "rv == APR_SUCCESS" failed
>>>
>>>after it calls apr_sockaddr_info_get() with the hostname
>>>"255.255.255.255". I think this may have something to do with the
>>>test's http.conf containing _default_ virtual hostnames.
>>>
>>>apr_sockaddr_info_get() eventually calls getaddrinfo() with the
>>>nodename "255.255.255.255" which returns EAI_NONAME (no address
>>>associated with nodename).
>>>
>>>But if I call getaddrinfo() for 255.255.255.255 from another
>>
>>machine
>>
>>>(which is running Solaris 8 although this may be unrelated), it
>>
>>returns
>>
>>>0.
>>>
>>>Is there something wrong with the configuration of my Solaris 9
>>
>>machine
>>
>>>- should getaddrinfo() always return 0 for 255.255.255.255 ?
>>
>>What happens if you add a simple vhost to your httpd.conf without
>>even using 
>>mod_perl. I bet that this is an apache issue.
> 
> 
> I think I found a partial answer to this. I was searching the Apache
> bug database and I found a similar report (number 20063) by someone who
> was using SSL (I'm not) but had exactly the same assertion.
> 
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20063
> 
> It seems that a _default_ virtual host in httpd.conf which resolvs to
> 255.255.255.255 causes getaddrinfo to fail in Solaris unless the
> "hosts:" line in /etc/nsswitch.conf contained "dns".
> 
> I found that my hosts line did not contain dns, so I added it and sure
> enough, it solved the problem.
> 
> It seems that only the presence of "dns" allows getaddrinfo to work
> correctly. The bug report was rejected as being an OS problem, so the
> "solution" is really a just a workaround.


Do you think it's worth documenting here:
http://perl.apache.org/docs/2.0/user/troubleshooting/troubleshooting.html
?

If so, can you rewrite the above description and the workaround as a pod/text 
section that can be added as is to this document, if possible with a title 
that pinpoints the problem.

Also it seems to be an issue for Apache::Test, not really for mod_perl itself. 
So we should probably add a new top level group 'Testing'.

Thanks.

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


Re: make test fails when calling getaddrinfo() on 255.255.255.255

Posted by ColinB <cb...@yahoo.com>.
--- Stas Bekman <st...@stason.org> wrote:
> ColinB wrote:
> > I am compiling mod_perl 2.0 on Solaris 9.
> > 
> > When I run "make test" for mod_perl 2.0 it fails almost immediately
> > with
> > 
> >   file vhost.c, line 232, assertion "rv == APR_SUCCESS" failed
> > 
> > after it calls apr_sockaddr_info_get() with the hostname
> > "255.255.255.255". I think this may have something to do with the
> > test's http.conf containing _default_ virtual hostnames.
> > 
> > apr_sockaddr_info_get() eventually calls getaddrinfo() with the
> > nodename "255.255.255.255" which returns EAI_NONAME (no address
> > associated with nodename).
> > 
> > But if I call getaddrinfo() for 255.255.255.255 from another
> machine
> > (which is running Solaris 8 although this may be unrelated), it
> returns
> > 0.
> > 
> > Is there something wrong with the configuration of my Solaris 9
> machine
> > - should getaddrinfo() always return 0 for 255.255.255.255 ?
> 
> What happens if you add a simple vhost to your httpd.conf without
> even using 
> mod_perl. I bet that this is an apache issue.

I think I found a partial answer to this. I was searching the Apache
bug database and I found a similar report (number 20063) by someone who
was using SSL (I'm not) but had exactly the same assertion.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20063

It seems that a _default_ virtual host in httpd.conf which resolvs to
255.255.255.255 causes getaddrinfo to fail in Solaris unless the
"hosts:" line in /etc/nsswitch.conf contained "dns".

I found that my hosts line did not contain dns, so I added it and sure
enough, it solved the problem.

It seems that only the presence of "dns" allows getaddrinfo to work
correctly. The bug report was rejected as being an OS problem, so the
"solution" is really a just a workaround.

Colin


__________________________________
Do you Yahoo!?
SBC Yahoo! DSL - Now only $29.95 per month!
http://sbc.yahoo.com