[jgroups-users] problem with v4.0.16 and IPv6
Questions/problems related to using JGroups <[email protected]> Wed, 24 Apr 2019 12:57:03 -0400
| Newsgroups | gmane.comp.java.javagroups.general |
|---|---|
| Message-ID | <mailman.37202.1556126428.1518.javagroups-users@lists.sourceforge.net> |
--===============6327428319949569451==
Content-Type: multipart/alternative; boundary="000000000000583d6d058749995d"
--000000000000583d6d058749995d
Content-Type: text/plain; charset="UTF-8"
Hi all,
We switched from jgroups v4.0.13 to v4.0.16 and now can't start our app
when using IPV6 addresses. The same code runs ok if I drop in the 4.0.13
jar instead (renamed to match classpath, etc.).
This is the exception on startup:
java.lang.IllegalArgumentException: found IPv6 address
/fda5:7338:32fc:7a0f:0:0:0:1 in an IPv4 stack
at org.jgroups.stack.Configurator.setDefaultValues(Configurator.java:132)
at org.jgroups.stack.ProtocolStack.init(ProtocolStack.java:829)
at org.jgroups.JChannel.<init>(JChannel.java:200)
Our channel definition is below. Can you tell me please if this a 4.0.16
bug, or was there a bug in 4.0.13 that allowed jgroups to work when maybe
it shouldn't have?
The Configurator#setDefaultValues(List<Protocol> protocols) method and
related code looks the same to me in both 4.0.13 and 4.0.16, so I don't
know how this is now failing. Any ideas?
Thanks,
Bobby
our stack code, slightly edited to replace internal methods with readable
description:
List<Protocol> stack = new ArrayList<>();
stack.add(new TCP()
.setValue("bind_addr", InetAddress.getByName(<method to get
local address>))
.setValue("bind_port", bindingPort)
.setValue("thread_pool_min_threads", 1)
.setValue("thread_pool_keep_alive_time", 5000)
.setValue("send_buf_size", 640000)
.setValue("sock_conn_timeout", 300)
.setValue("recv_buf_size", 5000000));
stack.add(new TCPPING()
.setValue("initial_hosts", <method to get hosts>)
.setValue("send_cache_on_join", true)
.setValue("port_range", 0));
stack.add(new MERGE3()
.setValue("min_interval", 10000)
.setValue("max_interval", 30000));
stack.add(new FD_ALL()
.setValue("timeout", <get timeout>));
stack.add(new VERIFY_SUSPECT()
.setValue("timeout", 1500));
stack.add(new BARRIER());
stack.add(new NAKACK2()
.setValue("use_mcast_xmit", false));
stack.add(new UNICAST3());
stack.add(new STABLE()
.setValue("desired_avg_gossip", 50000)
.setValue("max_bytes", 4000000));
stack.add(<create auth protocol object here>);
stack.add(new GMS()
.setValue("join_timeout", 3000));
stack.add(new MFC()
.setValue("max_credits", 2000000)
.setValue("min_credits", 800000));
stack.add(new FRAG2());
stack.add(new STATE_TRANSFER());
return new JChannel(stack);
--000000000000583d6d058749995d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div>Hi=
all,</div><div><br></div><div>We switched from jgroups v4.0.13 to v4.0.16 =
and now can't start our app when using IPV6 addresses. The same code ru=
ns ok if I drop in the 4.0.13 jar instead (renamed to match classpath, etc.=
).</div><div><br></div><div>This is the exception on startup:</div><div><br=
></div><div>java.lang.IllegalArgumentException: found IPv6 address /fda5:73=
38:32fc:7a0f:0:0:0:1 in an IPv4 stack</div><div><span style=3D"white-space:=
pre"> </span>at org.jgroups.stack.Configurator.setDefaultValues(Configurato=
r.java:132)</div><div><span style=3D"white-space:pre"> </span>at org.jgroup=
s.stack.ProtocolStack.init(ProtocolStack.java:829)</div><div><span style=3D=
"white-space:pre"> </span>at org.jgroups.JChannel.<init>(JChannel.jav=
a:200)</div><div><br></div><div>Our channel definition is below. Can you te=
ll me please if this a 4.0.16 bug, or was there a bug in 4.0.13 that allowe=
d jgroups to work when maybe it shouldn't have?</div><div><br></div><di=
v>The Configurator#setDefaultValues(List<Protocol> protocols) method =
and related code looks the same to me in both 4.0.13 and 4.0.16, so I don&#=
39;t know how this is now failing. Any ideas?</div><div><br></div><div>Than=
ks,</div><div>Bobby</div><div><br></div><div>our stack code, slightly edite=
d to replace internal methods with readable description:</div><div><br></di=
v><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 List<Protocol> stack =3D new Array=
List<>();</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(new TCP()</=
div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("bind_add=
r", InetAddress.getByName(<method to get local address>))</div><=
div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("bind_port&quo=
t;, bindingPort)</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setVa=
lue("thread_pool_min_threads", 1)</div><div>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 .setValue("thread_pool_keep_alive_time", 500=
0)</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("send=
_buf_size", 640000)</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 .setValue("sock_conn_timeout", 300)</div><div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("recv_buf_size", 5000000));=
</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(new TCPPING()<br></div><di=
v>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("initial_hosts&q=
uot;, <method to get hosts>)</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 .setValue("send_cache_on_join", true)</div><div>=C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("port_range", 0)=
);</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(new MERGE3()<br></div><d=
iv>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("min_interval&q=
uot;, 10000)</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue(=
"max_interval", 30000));</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 st=
ack.add(new FD_ALL()</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .s=
etValue("timeout", <get timeout>));</div><div>=C2=A0 =C2=A0=
=C2=A0 =C2=A0 stack.add(new VERIFY_SUSPECT()</div><div>=C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("timeout", 1500));</div><div>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(new BARRIER());</div><div>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 stack.add(new NAKACK2()</div><div>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 .setValue("use_mcast_xmit", false));</div><d=
iv>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(new UNICAST3());</div><div>=C2=A0 =
=C2=A0 =C2=A0 =C2=A0 stack.add(new STABLE()</div><div>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 .setValue("desired_avg_gossip", 50000)</div>=
<div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .setValue("max_bytes&qu=
ot;, 4000000));</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(<create =
auth protocol object here>);</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack=
.add(new GMS()<br></div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 .set=
Value("join_timeout", 3000));</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 stack.add(new MFC()</div><div>=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
.setValue("max_credits", 2000000)</div><div>=C2=A0 =C2=A0 =C2=A0=
=C2=A0 =C2=A0 =C2=A0 .setValue("min_credits", 800000));</div><di=
v>=C2=A0 =C2=A0 =C2=A0 =C2=A0 stack.add(new FRAG2());</div><div>=C2=A0 =C2=
=A0 =C2=A0 =C2=A0 stack.add(new STATE_TRANSFER());</div><div>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 return new JChannel(stack);</div><div>=C2=A0</div></div></div=
></div></div>
--000000000000583d6d058749995d--
--===============6327428319949569451==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============6327428319949569451==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
javagroups-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/javagroups-users
--===============6327428319949569451==--