[ 
https://issues.apache.org/jira/browse/HBASE-5441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13213400#comment-13213400
 ] 

Phabricator commented on HBASE-5441:
------------------------------------

dhruba has commented on the revision "HBASE-5441 [jira] HRegionThriftServer may 
not start because of a race-condition".

INLINE COMMENTS
  src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java:501 
every call will have to go via a synchronized section, will definitely slow 
down throughput. How about if we do the the 'volatile thing' described in 
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html


  class Foo {
      private volatile Helper helper = null;
      public Helper getHelper() {
          Helper result = helper;
          if (result == null) {
              synchronized(this) {
                  result = helper;
                  if (result == null) {
                      helper = result = new Helper();
                  }
              }
          }
          return result;
      }

      // other functions and members...
  }

REVISION DETAIL
  https://reviews.facebook.net/D1857

                
> HRegionThriftServer may not start because of a race-condition
> -------------------------------------------------------------
>
>                 Key: HBASE-5441
>                 URL: https://issues.apache.org/jira/browse/HBASE-5441
>             Project: HBase
>          Issue Type: Bug
>          Components: thrift
>            Reporter: Scott Chen
>            Assignee: Scott Chen
>            Priority: Minor
>         Attachments: HBASE-5441.D1845.1.patch, HBASE-5441.D1845.2.patch, 
> HBASE-5441.D1857.2.patch
>
>
> This happens because the master is not started when ThriftServerRunner tries 
> to create an HBaseAdmin.
> org.apache.hadoop.ipc.RemoteException: 
> org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: Server is not 
> running yet
>         at 
> org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1333)
>         at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:899)
>         at 
> org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:150)
>         at $Proxy8.getProtocolVersion(Unknown Source)
>         at 
> org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:183)
>         at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:303)
>         at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:280)
>         at org.apache.hadoop.hbase.ipc.HBaseRPC.getProxy(HBaseRPC.java:332)
>         at 
> org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getMaster(HConnectionManager.java:649)
>         at 
> org.apache.hadoop.hbase.client.HBaseAdmin.<init>(HBaseAdmin.java:108)
>         at 
> org.apache.hadoop.hbase.thrift.ThriftServerRunner$HBaseHandler.<init>(ThriftServerRunner.java:516)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionThriftServer$HBaseHandlerRegion.<init>(HRegionThriftServer.java:104)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionThriftServer.<init>(HRegionThriftServer.java:74)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.initializeThreads(HRegionServer.java:646)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.preRegistrationInitialization(HRegionServer.java:546)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:658)
>         at java.lang.Thread.run(Thread.java:662)
> 2012-02-21 16:38:18,223 INFO org.apache.hadoop.hba

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to