IndexedRegion RPC deadlock
--------------------------

                 Key: HBASE-1910
                 URL: https://issues.apache.org/jira/browse/HBASE-1910
             Project: Hadoop HBase
          Issue Type: Bug
    Affects Versions: 0.20.1, 0.21.0
            Reporter: Andrew Purtell


>From Tatsuya Kawano up on hbase-user@

{quote}
50 client threads who try to put millions of records, autoFlush(false), 
flushCommits() on every 5,000 put. After inserting about 3 million records, a 
deadlock occurred on a region server who has both the table and index regions 
loaded.

I have attached a full thread dump of the deadlocked region server, and you can 
see IPC Server handlers are blocked in 
org.apache.hadoop.hbase.regionserver.tableindexed.IndexedRegion.updateIndex().

I found the flowing FIXME comment on updateIndex() method, and it seems this is 
the deadlock I'm having.

{code}
  // FIXME: This call takes place in an RPC, and requires an RPC. This makes for
  // a likely deadlock if the number of RPCs we are trying to serve is >= the
  // number of handler threads.
  private void updateIndex(IndexSpecification indexSpec, byte[] row,
      SortedMap<byte[], byte[]> columnValues) throws IOException {
{code}

I use HBase 0.20.1 and my region servers were running with 10 RPC handler 
threads on each (default).

Maybe you can workaround this by adding more RPC handlers (increase the value 
of "hbase.regionserver.handler.count" in hbase-site.xml)
{quote}

Opening this issue to track the FIXME.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to