Hale Bales created GEODE-10004:
----------------------------------
Summary: Starting server should fail fast when server port and
redis port are the same
Key: GEODE-10004
URL: https://issues.apache.org/jira/browse/GEODE-10004
Project: Geode
Issue Type: Bug
Components: gfsh, redis
Affects Versions: 1.15.0, 1.16.0
Reporter: Hale Bales
When starting a cluster with GFSH with geode-for-redis enabled, starting a
server fails when the geode-for-redis-port and server-port are set to the same
port. It fails with the below stacktrace, but does not fail fast. We should be
able to detect this issue before we reach the point of getting a bind exception.
stacktrace:
{code:java}
Exception in thread "main" java.lang.RuntimeException: An IO error occurred
while starting a Server in /Users/hbales/workspace/geode/itch-proud-alpha on
hbales-a01.vmware.com[6379]: Failed to create server socket on 192.168.0.4[6379]
at
org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:863)
at org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:739)
at org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:258)
Caused by: java.net.BindException: Failed to create server socket on
192.168.0.4[6379]
at
org.apache.geode.distributed.internal.tcpserver.ClusterSocketCreatorImpl.createServerSocket(ClusterSocketCreatorImpl.java:75)
at
org.apache.geode.internal.net.SCClusterSocketCreator.createServerSocket(SCClusterSocketCreator.java:55)
at
org.apache.geode.internal.net.SocketCreator.createServerSocket(SocketCreator.java:522)
at
org.apache.geode.internal.cache.tier.sockets.AcceptorImpl.<init>(AcceptorImpl.java:573)
at
org.apache.geode.internal.cache.tier.sockets.AcceptorBuilder.create(AcceptorBuilder.java:291)
at
org.apache.geode.internal.cache.CacheServerImpl.createAcceptor(CacheServerImpl.java:420)
at
org.apache.geode.internal.cache.CacheServerImpl.start(CacheServerImpl.java:377)
at
org.apache.geode.distributed.ServerLauncher.startCacheServer(ServerLauncher.java:1039)
at
org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:837)
... 2 more
Caused by: java.net.BindException: Address already in use (Bind failed)
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
at java.net.ServerSocket.bind(ServerSocket.java:375)
at
org.apache.geode.distributed.internal.tcpserver.ClusterSocketCreatorImpl.createServerSocket(ClusterSocketCreatorImpl.java:72)
... 10 more
{code}
series of GFSH commands that led to this error:
{code:java}
> start locator
> start server --J=-Dgemfire.geode-for-redis-enabled=true
> --J=-Dgemfire.geode-for-redis-port=6379 --server-port=6379
{code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)