[ 
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)

Reply via email to