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

    Details

    • Hadoop Flags:
      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.branch-2.7.patch
          23 kB
          zhihai xu
        2. YARN-4209.002.patch
          28 kB
          zhihai xu
        3. YARN-4209.001.patch
          28 kB
          zhihai xu
        4. YARN-4209.000.patch
          5 kB
          zhihai xu

          Activity

            People

            • Assignee:
              zxu zhihai xu
              Reporter:
              zxu zhihai xu
            • Votes:
              0 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: