Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ISPN-14854 Do not bother matching addresses with different sizes #11012

Merged

Conversation

tristantarrant
Copy link
Member

@Crumby
Copy link

Crumby commented Jun 1, 2023

Tested locally and multihomed address is now bound correctly:

$ ./bin/server.sh -b ::

JAVA_OPTS already set in environment; overriding default settings with values: -Djava.net.preferIPv4Stack=false
2023-06-01 11:26:33,526 INFO  [BOOT] JVM OpenJDK 64-Bit Server VM Red Hat, Inc. 17.0.7+7
...
2023-06-01 11:26:37,333 INFO  [o.i.SERVER] ISPN080018: Started connector Memcached (internal)
2023-06-01 11:26:37,333 INFO  [o.i.SERVER] ISPN080018: Started connector Resp (internal)
2023-06-01 11:26:37,351 INFO  [o.i.SERVER] ISPN080018: Started connector HotRod (internal)
2023-06-01 11:26:37,403 INFO  [o.i.SERVER] ISPN080018: Started connector REST (internal)
2023-06-01 11:26:37,414 INFO  [o.i.SERVER] ISPN005055: Using transport: Epoll
2023-06-01 11:26:37,473 INFO  [o.i.SERVER] ISPN080004: Connector SinglePort (default) listening on 0:0:0:0:0:0:0:0:11222
2023-06-01 11:26:37,474 INFO  [o.i.SERVER] ISPN080034: Server 'localhost-33265' listening on http://0:0:0:0:0:0:0:0:11222
2023-06-01 11:26:37,510 INFO  [o.i.SERVER] ISPN080001: Infinispan Server 15.0.0-SNAPSHOT started in 3955ms

While original PR #10925 fixed the detection the binding itself could result in fatal server startup:

$ ./bin/server.sh -b ::

JAVA_OPTS already set in environment; overriding default settings with values: -Djava.net.preferIPv4Stack=false
2023-06-01 11:25:58,296 INFO  [BOOT] JVM OpenJDK 64-Bit Server VM Red Hat, Inc. 17.0.7+7
...
2023-06-01 11:26:02,206 INFO  [o.i.SERVER] ISPN080018: Started connector Memcached (internal)
2023-06-01 11:26:02,206 INFO  [o.i.SERVER] ISPN080018: Started connector Resp (internal)
2023-06-01 11:26:02,223 FATAL [o.i.SERVER] ISPN080028: Infinispan Server failed to start java.lang.ArrayIndexOutOfBoundsException
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
	at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:564)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:591)
	at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:689)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateParallel(ForEachOps.java:159)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateParallel(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:765)
	at org.infinispan.server.Server.run(Server.java:434)
	at org.infinispan.server.Bootstrap.runInternal(Bootstrap.java:184)
	at org.infinispan.server.tool.Main.run(Main.java:98)
	at org.infinispan.server.Bootstrap.main(Bootstrap.java:67)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.infinispan.server.loader.Loader.run(Loader.java:104)
	at org.infinispan.server.loader.Loader.main(Loader.java:49)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
	at org.infinispan.server.hotrod.MultiHomedServerAddress.inetAddressMatchesInterfaceAddress(MultiHomedServerAddress.java:121)
	at org.infinispan.server.hotrod.MultiHomedServerAddress$InetAddressWithNetMask.<init>(MultiHomedServerAddress.java:176)
	at org.infinispan.server.hotrod.MultiHomedServerAddress.<init>(MultiHomedServerAddress.java:42)
	at org.infinispan.server.hotrod.ServerAddress.forAddress(ServerAddress.java:24)
	at org.infinispan.server.hotrod.HotRodServer.addSelfToTopologyView(HotRodServer.java:327)
	at org.infinispan.server.hotrod.HotRodServer.startInternal(HotRodServer.java:273)
	at org.infinispan.server.core.AbstractProtocolServer.start(AbstractProtocolServer.java:119)
	at org.infinispan.server.SecurityActions.lambda$startProtocolServer$2(SecurityActions.java:60)
	at org.infinispan.security.Security.doPrivileged(Security.java:49)
	at org.infinispan.server.SecurityActions.startProtocolServer(SecurityActions.java:59)
	at org.infinispan.server.Server.lambda$run$3(Server.java:451)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
	at java.base/java.util.stream.ForEachOps$ForEachTask.compute(ForEachOps.java:290)
	at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:754)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
	at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
	at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)

@ryanemerson ryanemerson self-requested a review June 1, 2023 09:51
@tristantarrant
Copy link
Member Author

Failures are unrelated.

@ryanemerson ryanemerson merged commit 6a8784a into infinispan:main Jun 1, 2023
3 of 4 checks passed
@ryanemerson
Copy link
Contributor

Thanks @tristantarrant

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants