'failed setting up socket' error with BIND9 on Solaris 2.5
Mark Andrews
Mark_Andrews at isc.org
Mon Nov 21 13:21:42 UTC 2005
> Hi all,
>
> I wonder if anyone has experience with BIND9 (9.2.5 or 9.3.1 in this case) on
> a SunOS 5.5.1 (Solaris 2.5) Ultra-2 Box.
>
> I tried to set up a BIND9 on this machine and everything seems to be ok,
> compiling, installation, resolving - no problems.
>
> But I did not manage to configure the BIND as a slave for several domains.
> There is not one zonetransfer that did it successfully. Any attempt of an
> axfr from the slave to the master fails with the following error:
>
> --
> Nov 20 04:20:58 moebius named[5278]: transfer of 'xxxx.de/IN' from
> 192.168.10.12#53: failed setting up socket: socket already bound
> --
>
> Although I tried out several versions of BIND 9 this error always comes up.
> The socket is definitively NOT used by any other process than the named on
> this machine. As masters there are several versions of BIND, from 4.9 through
> 8.x to 9.2.4 without any other behaviors.
>
> At this moment there is unfortunately no way to upgrade to newer solaris on
> the described machine.
>
> Are there any ideas out there ?
>
> Any help would be appreciated.
>
> Thanks in advance !
>
> Udo
Looks like you are dealing with a kernel bug in SunOS 5.5.1.
My bet is that connect() is complaining that bind() has already
been called on the socket. This is done to get the correct
source address for the packets.
You should be able to remove the isc_socket_bind() call but
transfer-source will nolonger be effective for the TCP connection.
Mark
lib/dns/xfrin.c:
static isc_result_t
xfrin_start(dns_xfrin_ctx_t *xfr) {
isc_result_t result;
CHECK(isc_socket_create(xfr->socketmgr,
isc_sockaddr_pf(&xfr->sourceaddr),
isc_sockettype_tcp,
&xfr->socket));
CHECK(isc_socket_bind(xfr->socket, &xfr->sourceaddr));
CHECK(isc_socket_connect(xfr->socket, &xfr->masteraddr, xfr->task,
xfrin_connect_done, xfr));
xfr->connects++;
return (ISC_R_SUCCESS);
failure:
xfrin_fail(xfr, result, "failed setting up socket");
return (result);
}
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742 INTERNET: Mark_Andrews at isc.org
More information about the bind-users
mailing list