[ https://issues.apache.org/jira/browse/HBASE-14078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Warhaftig updated HBASE-14078: ----------------------------------- Attachment: hbase-14078_post_stack.txt Thanks for the feedback [~stack]. Below are responses inline. {quote} Formatting is a little off. Please check. {quote} Can you point me towards the misformatted code? - I didn't see it when looking at the diff. {quote} Do you have example of what the emission looks like now? {quote} See attached 'hbase-14078_post_stack.txt'. {quote} 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'? {quote} You are correct with your questioning. I will tighten port issue error logic when making the earlier mentioned formatting change. {quote} 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.... {quote} Yes, the change was intentional because existing HMaster thrown errors include useful messages that were previously ignored when only e.getCause() was displayed. The e.getCause() message is still displayed after this change, just one level down the error stack now. > 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-14078_post_stack.txt, 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)