You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Guanghao Zhang (JIRA)" <ji...@apache.org> on 2017/11/23 09:25:00 UTC

[jira] [Created] (HBASE-19337) AsyncMetaTableAccessor may hang when call ScanController.terminate many times

Guanghao Zhang created HBASE-19337:
--------------------------------------

             Summary: AsyncMetaTableAccessor may hang when call ScanController.terminate many times
                 Key: HBASE-19337
                 URL: https://issues.apache.org/jira/browse/HBASE-19337
             Project: HBase
          Issue Type: Bug
            Reporter: Guanghao Zhang


Code in ScanControllerImpl.
{code}
    private void preCheck() {
      Preconditions.checkState(Thread.currentThread() == callerThread,
        "The current thread is %s, expected thread is %s, " +
            "you should not call this method outside onNext or onHeartbeat",
        Thread.currentThread(), callerThread);
      Preconditions.checkState(state.equals(ScanControllerState.INITIALIZED),
        "Invalid Stopper state %s", state);
    }

    @Override
    public void terminate() {
      preCheck();
      state = ScanControllerState.TERMINATED;
    }
{code}
So if call terminate on a already terminated scan, it will throw IllegalStateException.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)