Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-4209

RMStateStore FENCED state doesn't work due to updateFencedState called by stateMachine.doTransition

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      RMStateStore FENCED state doesn’t work due to updateFencedState called by stateMachine.doTransition. The reason is
      stateMachine.doTransition called from updateFencedState is embedded in stateMachine.doTransition called from public API(removeRMDelegationToken...) or ForwardingEventHandler#handle. So right after the internal state transition from updateFencedState changes the state to FENCED state, the external state transition changes the state back to ACTIVE state. The end result is that RMStateStore is still in ACTIVE state even after notifyStoreOperationFailed is called. The only working case for FENCED state is notifyStoreOperationFailed called from ZKRMStateStore#VerifyActiveStatusThread.
      For example: removeRMDelegationToken => handleStoreEvent => enter external stateMachine.doTransition => RemoveRMDTTransition => notifyStoreOperationFailed =>updateFencedState=>handleStoreEvent=> enter internal stateMachine.doTransition => exit internal stateMachine.doTransition change state to FENCED => exit external stateMachine.doTransition change state to ACTIVE.

      Attachments

        1. YARN-4209.000.patch
          5 kB
          Zhihai Xu
        2. YARN-4209.001.patch
          28 kB
          Zhihai Xu
        3. YARN-4209.002.patch
          28 kB
          Zhihai Xu
        4. YARN-4209.branch-2.7.patch
          23 kB
          Zhihai Xu

        Activity

          People

            zxu Zhihai Xu
            zxu Zhihai Xu
            Votes:
            0 Vote for this issue
            Watchers:
            11 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: