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

Duo Zhang commented on HBASE-20881:
-----------------------------------

The TestLockManager seems to be another problem. The code is like this

{code}
else if (procedure.getState() == ProcedureState.WAITING_TIMEOUT) {
          LOG.trace("Added to timeoutExecutor {}", procedure);
          timeoutExecutor.add(procedure);
        }

  public void add(Procedure<TEnvironment> procedure) {
    assert procedure.getState() == ProcedureState.WAITING_TIMEOUT;
    LOG.info("ADDED {}; timeout={}, timestamp={}", procedure, 
procedure.getTimeout(),
      procedure.getTimeoutTimestamp());
    queue.add(new DelayedProcedure<>(procedure));
  }
{code}

You can see that there is a WAITING_TIMEOUT check before adding, but in the add 
method the assertion fails...

The full log
{noformat}
2018-08-14 17:30:10,342 DEBUG [Time-limited test] 
procedure2.ProcedureExecutor(958): Stored pid=15, state=RUNNABLE, 
hasLock=false; org.apache.hadoop.hbase.master.locking.LockProcedure, 
namespace=namespace, type=EXCLUSIVE
2018-08-14 17:30:10,343 DEBUG [PEWorker-1] locking.LockProcedure(309): LOCKED 
pid=15, state=RUNNABLE, hasLock=false; 
org.apache.hadoop.hbase.master.locking.LockProcedure, namespace=namespace, 
type=EXCLUSIVE
2018-08-14 17:30:10,348 INFO  [PEWorker-1] 
procedure2.ProcedureExecutor$WorkerThread(1822): ASSERT pid=15
java.lang.AssertionError
        at 
org.apache.hadoop.hbase.procedure2.TimeoutExecutorThread.add(TimeoutExecutorThread.java:81)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1573)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1319)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$900(ProcedureExecutor.java:77)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1820)
2018-08-14 17:30:10,349 WARN  [PEWorker-1] 
procedure2.ProcedureExecutor$WorkerThread(1836): Worker terminating UNNATURALLY 
null
java.lang.AssertionError
        at 
org.apache.hadoop.hbase.procedure2.TimeoutExecutorThread.add(TimeoutExecutorThread.java:81)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.execProcedure(ProcedureExecutor.java:1573)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.executeProcedure(ProcedureExecutor.java:1319)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor.access$900(ProcedureExecutor.java:77)
        at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1820)
{noformat}

Not too much useful information.

> Introduce a region transition procedure to handle all the state transition 
> for a region
> ---------------------------------------------------------------------------------------
>
>                 Key: HBASE-20881
>                 URL: https://issues.apache.org/jira/browse/HBASE-20881
>             Project: HBase
>          Issue Type: Sub-task
>          Components: amv2, proc-v2
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>            Priority: Major
>             Fix For: 3.0.0, 2.2.0
>
>         Attachments: HBASE-20881-v1.patch, HBASE-20881-v10.patch, 
> HBASE-20881-v2.patch, HBASE-20881-v3.patch, HBASE-20881-v4.patch, 
> HBASE-20881-v4.patch, HBASE-20881-v5.patch, HBASE-20881-v6.patch, 
> HBASE-20881-v7.patch, HBASE-20881-v7.patch, HBASE-20881-v8.patch, 
> HBASE-20881-v9.patch, HBASE-20881.patch
>
>
> Now have an AssignProcedure, an UnssignProcedure, and also a 
> MoveRegionProcedure which schedules an AssignProcedure and an 
> UnssignProcedure to move a region. This makes the logic a bit complicated, as 
> MRP is not a RIT, so when SCP can not interrupt it directly...



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to