ODBC and net.ipv6.bindv6only

Sergei Golovan <>
Sat Oct 16 16:15:47 CEST 2010


Hi!

Looks like odbc application has a bug which breaks it in case when
net.ipv6.bindv6only config variable is set to 1 (so, binding to inet6
socket doesn't bind to inet one as well).

In Debian GNU/Linux (using R14A, but R14B has the same odbc version 2.10.8):

% cat /proc/sys/net/ipv6/bindv6only
0
% erl
Erlang R14A (erts-5.8) [source] [smp:8:8] [rq:8] [async-threads:0]
[kernel-poll:false]

Eshell V5.8  (abort with ^G)
1> odbc:start().
ok
2> odbc:connect("DSN=postgres;UID=odbcuser;PWD=odbcpasswd",[]).
{ok,<0.39.0>}
3>

Another scenario:

% cat /proc/sys/net/ipv6/bindv6only
1
% erl
Erlang R14A (erts-5.8) [source] [smp:8:8] [rq:8] [async-threads:0]
[kernel-poll:false]

Eshell V5.8  (abort with ^G)
1> odbc:start().
ok
2> odbc:connect("DSN=postgres;UID=odbcuser;PWD=odbcpasswd",[]).
{error,connection_closed}

=ERROR REPORT==== 16-Oct-2010::18:11:35 ===
** Generic server <0.39.0> terminating
** Last message in was {<0.32.0>,
                        {connect,[1,1,2,1,1,2,
                                  "DSN=postgres;UID=odbcuser;PWD=odbcpasswd"],
                                 on,on},
                        infinity}
** When Server state == {state,#Port<0.571>,
                               {<0.32.0>,#Ref<0.0.0.39>},
                               <0.32.0>,undefined,on,undefined,undefined,on,
                               connecting,undefined,0,
                               [#Port<0.569>,#Port<0.570>],
                               undefined,undefined}
** Reason for termination ==
** timeout
3>

The latter timeout occurs even in case when "localhost" resolves to
both 127.0.0.1 and ::1.

Cheers!

-- 
Sergei Golovan


More information about the erlang-bugs mailing list