[
https://issues.apache.org/jira/browse/HBASE-14078?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14693668#comment-14693668
]
stack commented on HBASE-14078:
-------------------------------
Formatting is a little off. Please check.
Do you have example of what the emission looks like now?
Whatever the IOE exception that comes up out of setting up the rpc server, we
will always have this suffix about how to config port. Will it always be a port
issue? Perhaps work on BindException only? And only if 'Address in use'?
The changes in HMaster.java do not seem to make for the same emission. Is that
intentional? For example, before patch, if an Exception, we used to
e.getCause().getMessage() if non-null but now if I read it right, we do
e.toString....
> improve error message when HMaster can't bind to port
> -----------------------------------------------------
>
> Key: HBASE-14078
> URL: https://issues.apache.org/jira/browse/HBASE-14078
> Project: HBase
> Issue Type: Improvement
> Components: master
> Affects Versions: 2.0.0
> Reporter: Sean Busbey
> Assignee: Matt Warhaftig
> Labels: beginner
> Fix For: 2.0.0
>
> Attachments: hbase-14708-v1.patch, hbase-14708-v2.patch
>
>
> When the master fails to start becahse hbase.master.port is already taken,
> the log messages could make it easier to tell.
> {quote}
> 2015-07-14 13:10:02,667 INFO [main] regionserver.RSRpcServices:
> master/master01.example.com/10.20.188.121:16000 server-side HConnection
> retries=350
> 2015-07-14 13:10:02,879 INFO [main] ipc.SimpleRpcScheduler: Using deadline
> as user call queue, count=3
> 2015-07-14 13:10:02,895 ERROR [main] master.HMasterCommandLine: Master exiting
> java.lang.RuntimeException: Failed construction of Master: class
> org.apache.hadoop.hbase.master.HMaster
> at
> org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2258)
> at
> org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:234)
> at
> org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:140)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at
> org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
> at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2272)
> 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:444)
> at sun.nio.ch.Net.bind(Net.java:436)
> at
> sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214)
> at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
> at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2513)
> at
> org.apache.hadoop.hbase.ipc.RpcServer$Listener.<init>(RpcServer.java:599)
> at org.apache.hadoop.hbase.ipc.RpcServer.<init>(RpcServer.java:2000)
> at
> org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:919)
> at
> org.apache.hadoop.hbase.master.MasterRpcServices.<init>(MasterRpcServices.java:211)
> at
> org.apache.hadoop.hbase.master.HMaster.createRpcServices(HMaster.java:509)
> at
> org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:535)
> at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:351)
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
> Method)
> at
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
> at
> org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2253)
> ... 5 more
> {quote}
> I recognize that the "RSRpcServices" log message shows port 16000, but I
> don't know why a new operator would. Additionally, it'd be nice to tell them
> that the port is controlled by {{hbase.master.port}}. Maybe give a hint on
> how to see what's using the port. Could be too os-dist specific?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)