[ https://issues.apache.org/jira/browse/HBASE-14078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Warhaftig updated HBASE-14078: ----------------------------------- Status: Patch Available (was: Open) Attached patch 'hbase-14708-v1.patch' adds current master hostname and config info to the BindException via the HMaster class. The config info is added at HMaster#constructMaster() to keep the socket code generic. > 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 > Labels: beginner > Fix For: 2.0.0 > > Attachments: hbase-14708-v1.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)