From: Nick R. <ni...@en...> - 2004-03-18 18:34:26
|
Douglas, > Nick wrote: >> would you see if the port that's opened is IPv6? > I'm not sure how to check which protocol > a port is opened with I'm sorry about that Doug ... I flaked on you there. The problem is that the Apache/mod_webkit side cannot even get the socket connected. I forgot that, and that I had to add debug output* to mod_webkit.c (mod_webkit2) to uncover my initial hunch. Hey, that was January. > Nick also recklessly wrote: >> I've odds that you'll find ... localhost -> 127.0.0.1 > I changed httpd.conf back to read localhost, restarted Apache, and > restarted AppServer. Everything still works as before so it must have > been something else. Well, I lost that one. Shouldn't have jumped the gun. When you returned to the "localhost 8086" configuration (with Apache set to "LogLevel debug" in main or vhost config) I expected you to see the "Couldn't connect to AppServer" failures in your Apache error log. So I guess you (Mac OS X 10.3.2, Apache/1.3.29, mod_webkit [not mod_webkit2]) don't have this bug. And Todd Grimason's keen eye caught your bug. Best, --Nick * For the interested: The problem boils to a behavior in getipnodebyname(3). If IPv6 is defined for your host, the IPv6 addr for localhost [::1] is the first in the list ultimately returned through getaddrinfo(3) and back to Apache's apr_sockaddr_info_get(). So at startup Apache and mod_webkit2 set up the address structures for a perfectly fine IPv6 connection. But when the request comes through for the web page, mod_webkit2's wksock_open() gets refused (error=97) on socket creation because it tries to use that IPv6 info to open an IPv4 connection. One passable solution might be to change wksock_open() to read the address family from the returned-and-stored address structure instead of the hardcoded AF_INET. My workaround used the ability to request priority for IPv4 addresses in the response from (ultimately) getipnodebyname(). Specifying an actual address in the Apache conf can work too, provided it isn't actually an IPv6 address. -----Original Message----- From: web...@li... [mailto:web...@li...] On Behalf Of Douglas Burchard Sent: Wednesday, March 17, 2004 07:37 PM To: Webware Discuss Subject: Re: [Webware-discuss] Getting Webware running on Mac OS X On Mar 16, 2004, at 4:50 PM, Nick Ragouzis wrote: > I've odds that you'll find that John Dickinson's suggestion was the > ticket (viz: localhost -> 127.0.0.1 ... or whatever specific address > you want). > > If you do confirm that we'd have confirmation of the > 'bug' and 'fix' on Linux, Windows, and Mac OS. And > not only on Apache 2 but also 1; and not only mod_webkit2 > but also mod_webkit. > > When (ok, if) you try dropping back to localhost, would you see if the > port that's opened is IPv6? If so then perhaps we should rollup that > mod_webkit fix to mod_webkit's call to apr_sockaddr_info_get(). I changed httpd.conf back to read localhost, restarted Apache, and restarted AppServer. Everything still works as before so it must have been something else. In any case, I'm not sure how to check which protocol a port is opened with. -- Douglas Burchard |