[jboss-jira] [JBoss JIRA] (WFLY-4936) JGroups: failed setting ip_ttl on windows with dual-stack IPv6 with "Method not implemented!"

Radoslav Husar (JIRA) issues at jboss.org
Tue Oct 20 11:57:00 EDT 2015


    [ https://issues.jboss.org/browse/WFLY-4936?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13120104#comment-13120104 ] 

Radoslav Husar commented on WFLY-4936:
--------------------------------------

Update: The approach to use the property does not work because of a issue in JDK. It fails with the following:

{noformat}
19:10:26,686 ERROR [stderr] (main) Class not found: java.net.TwoStacksPlainInet6AddressImpl:
19:10:26,686 ERROR [stderr] (main) check impl.prefix property in your properties file.

java.lang.Error: System property impl.prefix incorrect
    at java.net.InetAddress.loadImpl(InetAddress.java:1548)
    at java.net.InetAddressImplFactory.create(InetAddress.java:1622)
    at java.net.InetAddress.<clinit>(InetAddress.java:952)
    at java.net.NetworkInterface.init(Native Method)
    at java.net.NetworkInterface.<clinit>(NetworkInterface.java:64)
    at sun.security.provider.SeedGenerator.addNetworkAdapterInfo(SeedGenerator.java:233)
    at sun.security.provider.SeedGenerator.access$000(SeedGenerator.java:80)
    at sun.security.provider.SeedGenerator$1.run(SeedGenerator.java:183)
    at sun.security.provider.SeedGenerator$1.run(SeedGenerator.java:168)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.security.provider.SeedGenerator.getSystemEntropy(SeedGenerator.java:168)
    at sun.security.provider.SecureRandom$SeederHolder.<clinit>(SecureRandom.java:201)
    at sun.security.provider.SecureRandom.engineNextBytes(SecureRandom.java:221)
    at java.security.SecureRandom.nextBytes(SecureRandom.java:468)
    at java.util.UUID.randomUUID(UUID.java:145)
    at org.jboss.as.controller.operations.common.ProcessEnvironment.obtainProcessUUID(ProcessEnvironment.java:192)
    at org.jboss.as.server.ServerEnvironment.<init>(ServerEnvironment.java:567)
    at org.jboss.as.server.Main.determineEnvironment(Main.java:297)
    at org.jboss.as.server.Main.main(Main.java:94)
    at org.jboss.modules.Module.run(Module.java:308)
    at org.jboss.modules.Main.main(Main.java:487)
{noformat}

So we can supply a property "impl.prefix" to choose an implementation for DatagramSocket. But the same property is used to pick up implementation for InetAddress. Though, there is no such "TwoStackPlainInet6AddressImpl", therefore the default implementation should be loaded but due to probably a bug in JDK this fails since the Class.forName is not being passed a fully-qualified class name.

https://github.com/openjdk-mirror/jdk/blob/jdk8u/jdk8u/master/src/share/classes/java/net/InetAddress.java#L1546


The code to call java.net.DatagramSocket#setDatagramSocketImplFactory is very fragile so unless we will really have to this this, we won't.


So on hold now.

> JGroups: failed setting ip_ttl on windows with dual-stack IPv6 with "Method not implemented!"
> ---------------------------------------------------------------------------------------------
>
>                 Key: WFLY-4936
>                 URL: https://issues.jboss.org/browse/WFLY-4936
>             Project: WildFly
>          Issue Type: Enhancement
>          Components: Clustering
>    Affects Versions: 10.0.0.Alpha1
>            Reporter: Jeff Mesnil
>            Assignee: Radoslav Husar
>            Priority: Minor
>             Fix For: 10.0.0.CR4
>
>
> {noformat}
> 10:18:14,721 SEVERE [org.jgroups.protocols.UDP] (Thread-0 (ActiveMQ-server-ActiveMQServerImpl::serverUUID=34818b2c-2b93-11e5-aeb7-199c6bd1db3c-31443612)) failed setting ip_ttl: java.lang.reflect.InvocationTargetException
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:497)
>     at org.jgroups.protocols.UDP.setTimeToLive(UDP.java:339)
>     at org.jgroups.protocols.UDP.createSockets(UDP.java:368)
>     at org.jgroups.protocols.UDP.start(UDP.java:270)
>     at org.jgroups.stack.ProtocolStack.startStack(ProtocolStack.java:965)
>     at org.jgroups.JChannel.startStack(JChannel.java:891)
>     at org.jgroups.JChannel._preConnect(JChannel.java:553)
>     at org.jgroups.JChannel.connect(JChannel.java:288)
>     at org.jgroups.JChannel.connect(JChannel.java:279)
>     at org.apache.activemq.artemis.api.core.JGroupsBroadcastEndpoint$JChannelWrapper.connect(JGroupsBroadcastEndpoint.java:211)
>     at org.apache.activemq.artemis.api.core.JGroupsBroadcastEndpoint.internalOpen(JGroupsBroadcastEndpoint.java:115)
>     at org.apache.activemq.artemis.api.core.JGroupsBroadcastEndpoint.openClient(JGroupsBroadcastEndpoint.java:92)
>     at org.apache.activemq.artemis.core.cluster.DiscoveryGroup.start(DiscoveryGroup.java:105)
>     at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.initialise(ServerLocatorImpl.java:380)
>     at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:846)
>     at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.connect(ServerLocatorImpl.java:687)
>     at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.connect(ServerLocatorImpl.java:671)
>     at org.apache.activemq.artemis.core.server.cluster.ClusterController$ConnectRunnable.run(ClusterController.java:448)
>     at org.apache.activemq.artemis.utils.OrderedExecutorFactory$OrderedExecutor$1.run(OrderedExecutorFactory.java:105)
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>     at java.lang.Thread.run(Thread.java:745)
> Caused by: java.io.IOException: Method not implemented!
>     at java.net.DualStackPlainDatagramSocketImpl.setTimeToLive(DualStackPlainDatagramSocketImpl.java:236)
>     ... 25 more
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.11#64026)


More information about the jboss-jira mailing list