HBASE-22486 Fix flaky test TestLockManager
This commit is contained in:
parent
8829b6f28f
commit
b0354644f8
@ -90,6 +90,8 @@ public final class LockProcedure extends Procedure<MasterProcedureEnv>
|
|||||||
// DEFAULT_LOCAL_MASTER_LOCKS_TIMEOUT_MS (10 min) so that there is no need to heartbeat.
|
// DEFAULT_LOCAL_MASTER_LOCKS_TIMEOUT_MS (10 min) so that there is no need to heartbeat.
|
||||||
private final CountDownLatch lockAcquireLatch;
|
private final CountDownLatch lockAcquireLatch;
|
||||||
|
|
||||||
|
private volatile boolean suspended = false;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableName getTableName() {
|
public TableName getTableName() {
|
||||||
return tableName;
|
return tableName;
|
||||||
@ -219,9 +221,10 @@ public final class LockProcedure extends Procedure<MasterProcedureEnv>
|
|||||||
locked.set(false);
|
locked.set(false);
|
||||||
// Maybe timeout already awakened the event and the procedure has finished.
|
// Maybe timeout already awakened the event and the procedure has finished.
|
||||||
synchronized (event) {
|
synchronized (event) {
|
||||||
if (!event.isReady()) {
|
if (!event.isReady() && suspended) {
|
||||||
setState(ProcedureProtos.ProcedureState.RUNNABLE);
|
setState(ProcedureProtos.ProcedureState.RUNNABLE);
|
||||||
event.wake(env.getProcedureScheduler());
|
event.wake(env.getProcedureScheduler());
|
||||||
|
suspended = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -244,6 +247,7 @@ public final class LockProcedure extends Procedure<MasterProcedureEnv>
|
|||||||
event.suspend();
|
event.suspend();
|
||||||
event.suspendIfNotReady(this);
|
event.suspendIfNotReady(this);
|
||||||
setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
|
setState(ProcedureProtos.ProcedureState.WAITING_TIMEOUT);
|
||||||
|
suspended = true;
|
||||||
}
|
}
|
||||||
throw new ProcedureSuspendedException();
|
throw new ProcedureSuspendedException();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user