hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Samir Ahmic (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-15030) Deadlock in master TableNamespaceManager while running IntegrationTestDDLMasterFailover
Date Tue, 22 Dec 2015 12:45:46 GMT
Samir Ahmic created HBASE-15030:
-----------------------------------

             Summary: Deadlock in master TableNamespaceManager while running IntegrationTestDDLMasterFailover
                 Key: HBASE-15030
                 URL: https://issues.apache.org/jira/browse/HBASE-15030
             Project: HBase
          Issue Type: Bug
          Components: master
    Affects Versions: 2.0.0
            Reporter: Samir Ahmic
            Assignee: Samir Ahmic


I was running IntegrationTestDDLMasterFailover on distributed cluster when i notice this.
Here is relevant part of master's jstack:
{code}
"ProcedureExecutor-1" daemon prio=10 tid=0x00007fd2d407f800 nid=0x3332 waiting for monitor
entry [0x00007fd2c2834000]
   java.lang.Thread.State: BLOCKED (on object monitor)
        at org.apache.hadoop.hbase.master.TableNamespaceManager.releaseExclusiveLock(TableNamespaceManager.java:157)
        - waiting to lock <0x0000000725c36a48> (a org.apache.hadoop.hbase.master.TableNamespaceManager)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.releaseLock(CreateNamespaceProcedure.java:216)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.releaseLock(CreateNamespaceProcedure.java:43)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:842)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:794)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$400(ProcedureExecutor.java:75)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$2.run(ProcedureExecutor.java:479)

   Locked ownable synchronizers:
        - <0x000000072574b330> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)

"ProcedureExecutor-3" daemon prio=10 tid=0x00007fd2d41e5800 nid=0x3334 waiting on condition
[0x00007fd2c2632000]
   java.lang.Thread.State: TIMED_WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000072574b330> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(AbstractQueuedSynchronizer.java:929)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1245)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock(ReentrantReadWriteLock.java:1115)
        at org.apache.hadoop.hbase.master.TableNamespaceManager.acquireExclusiveLock(TableNamespaceManager.java:150)
        - locked <0x0000000725c36a48> (a org.apache.hadoop.hbase.master.TableNamespaceManager)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.acquireLock(CreateNamespaceProcedure.java:210)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.acquireLock(CreateNamespaceProcedure.java:43)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeRollback(ProcedureExecutor.java:941)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:821)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:794)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$400(ProcedureExecutor.java:75)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$2.run(ProcedureExecutor.java:479)

   Locked ownable synchronizers:
        - None

Found one Java-level deadlock:
=============================
"ProcedureExecutor-3":
  waiting for ownable synchronizer 0x000000072574b330, (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync),
  which is held by "ProcedureExecutor-1"
"ProcedureExecutor-1":
  waiting to lock monitor 0x00007fd2cc328908 (object 0x0000000725c36a48, a org.apache.hadoop.hbase.master.TableNamespaceManager),
  which is held by "ProcedureExecutor-3"

Java stack information for the threads listed above:
===================================================
"ProcedureExecutor-3":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000072574b330> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(AbstractQueuedSynchronizer.java:929)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(AbstractQueuedSynchronizer.java:1245)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock(ReentrantReadWriteLock.java:1115)
        at org.apache.hadoop.hbase.master.TableNamespaceManager.acquireExclusiveLock(TableNamespaceManager.java:150)
        - locked <0x0000000725c36a48> (a org.apache.hadoop.hbase.master.TableNamespaceManager)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.acquireLock(CreateNamespaceProcedure.java:210)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.acquireLock(CreateNamespaceProcedure.java:43)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeRollback(ProcedureExecutor.java:941)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:821)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:794)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$400(ProcedureExecutor.java:75)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$2.run(ProcedureExecutor.java:479)
"ProcedureExecutor-1":
        at org.apache.hadoop.hbase.master.TableNamespaceManager.releaseExclusiveLock(TableNamespaceManager.java:157)
        - waiting to lock <0x0000000725c36a48> (a org.apache.hadoop.hbase.master.TableNamespaceManager)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.releaseLock(CreateNamespaceProcedure.java:216)
        at org.apache.hadoop.hbase.master.procedure.CreateNamespaceProcedure.releaseLock(CreateNamespaceProcedure.java:43)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:842)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execLoop(ProcedureExecutor.java:794)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$400(ProcedureExecutor.java:75)
        at org.apache.hadoop.hbase.procedure2.ProcedureExecutor$2.run(ProcedureExecutor.java:479)

Found 1 deadlock.
{code}

I will try to dig more info about why this happened logs not showing much.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message