[
https://issues.apache.org/jira/browse/OMID-247?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Istvan Toth updated OMID-247:
-----------------------------
Description:
The default TSO port, 54758 is in the epehemeral port range of every OS.
This can cause TSO server to randomly error out on startup with an error
similar to the following:
{noformat}
Exception in thread "Thread-5" java.lang.IllegalStateException: Expected the
service TSOServer [FAILED] to be TERMINATED, but the service has FAILED
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractService.checkCurrentState(AbstractService.java:366)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractService.awaitTerminated(AbstractService.java:329)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService.awaitTerminated(AbstractIdleService.java:175)
at org.apache.omid.tso.TSOServer$2.run(TSOServer.java:137)
Caused by: org.apache.omid.tso.LeaseManagement$LeaseManagementException: Error
initializing Lease Manager
at
org.apache.omid.tso.VoidLeaseManager.startService(VoidLeaseManager.java:38)
at org.apache.omid.tso.TSOServer.startUp(TSOServer.java:102)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:60)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.Callables$4.run(Callables.java:119)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at
io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
at
io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:550)
at
io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
at
io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
at
io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
at
io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248)
at
io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
... 1 more{noformat}
The only way to fix this is to change the default port number to be outside the
ephemeral range.
Anything under 32K seems to be safe.
was:
The default TSO port, 54758 is in the epehemarl port range of every OS.
This can cause TSO server to randomly error out on startup with an error
similar to the following:
{noformat}
Exception in thread "Thread-5" java.lang.IllegalStateException: Expected the
service TSOServer [FAILED] to be TERMINATED, but the service has FAILED
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractService.checkCurrentState(AbstractService.java:366)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractService.awaitTerminated(AbstractService.java:329)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService.awaitTerminated(AbstractIdleService.java:175)
at org.apache.omid.tso.TSOServer$2.run(TSOServer.java:137)
Caused by: org.apache.omid.tso.LeaseManagement$LeaseManagementException: Error
initializing Lease Manager
at
org.apache.omid.tso.VoidLeaseManager.startService(VoidLeaseManager.java:38)
at org.apache.omid.tso.TSOServer.startUp(TSOServer.java:102)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:60)
at
org.apache.phoenix.thirdparty.com.google.common.util.concurrent.Callables$4.run(Callables.java:119)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.BindException: Address already in use
at sun.nio.ch.Net.bind0(Native Method)
at sun.nio.ch.Net.bind(Net.java:433)
at sun.nio.ch.Net.bind(Net.java:425)
at
sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
at
io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
at
io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:550)
at
io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
at
io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
at
io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
at
io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248)
at
io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
at
io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
at
io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
at
io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
at
io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
... 1 more{noformat}
The only way to fix this is to change the default port number to be outside the
ephemeral range.
Anything under 32K seems to be safe.
> Change TSO default port to be outside the ephemeral range
> ---------------------------------------------------------
>
> Key: OMID-247
> URL: https://issues.apache.org/jira/browse/OMID-247
> Project: Phoenix Omid
> Issue Type: Bug
> Reporter: Istvan Toth
> Assignee: Istvan Toth
> Priority: Critical
>
> The default TSO port, 54758 is in the epehemeral port range of every OS.
> This can cause TSO server to randomly error out on startup with an error
> similar to the following:
> {noformat}
> Exception in thread "Thread-5" java.lang.IllegalStateException: Expected the
> service TSOServer [FAILED] to be TERMINATED, but the service has FAILED
> at
> org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractService.checkCurrentState(AbstractService.java:366)
> at
> org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractService.awaitTerminated(AbstractService.java:329)
> at
> org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService.awaitTerminated(AbstractIdleService.java:175)
> at org.apache.omid.tso.TSOServer$2.run(TSOServer.java:137)
> Caused by: org.apache.omid.tso.LeaseManagement$LeaseManagementException:
> Error initializing Lease Manager
> at
> org.apache.omid.tso.VoidLeaseManager.startService(VoidLeaseManager.java:38)
> at org.apache.omid.tso.TSOServer.startUp(TSOServer.java:102)
> at
> org.apache.phoenix.thirdparty.com.google.common.util.concurrent.AbstractIdleService$DelegateService$1.run(AbstractIdleService.java:60)
> at
> org.apache.phoenix.thirdparty.com.google.common.util.concurrent.Callables$4.run(Callables.java:119)
> at java.lang.Thread.run(Thread.java:748)
> Caused by: java.net.BindException: Address already in use
> at sun.nio.ch.Net.bind0(Native Method)
> at sun.nio.ch.Net.bind(Net.java:433)
> at sun.nio.ch.Net.bind(Net.java:425)
> at
> sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
> at
> io.netty.channel.socket.nio.NioServerSocketChannel.doBind(NioServerSocketChannel.java:134)
> at
> io.netty.channel.AbstractChannel$AbstractUnsafe.bind(AbstractChannel.java:550)
> at
> io.netty.channel.DefaultChannelPipeline$HeadContext.bind(DefaultChannelPipeline.java:1334)
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeBind(AbstractChannelHandlerContext.java:506)
> at
> io.netty.channel.AbstractChannelHandlerContext.bind(AbstractChannelHandlerContext.java:491)
> at
> io.netty.channel.DefaultChannelPipeline.bind(DefaultChannelPipeline.java:973)
> at io.netty.channel.AbstractChannel.bind(AbstractChannel.java:248)
> at
> io.netty.bootstrap.AbstractBootstrap$2.run(AbstractBootstrap.java:356)
> at
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
> at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
> at
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
> ... 1 more{noformat}
> The only way to fix this is to change the default port number to be outside
> the ephemeral range.
> Anything under 32K seems to be safe.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)