Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-18261

[AMv2] Create new RecoverMetaProcedure and use it from ServerCrashProcedure and HMaster.finishActiveMasterInitialization()

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0-alpha-1
    • 2.0.0-alpha-2, 2.0.0
    • amv2
    • None
    • Reviewed

    Description

      When unit test hbase.master.procedure.TestServerCrashProcedure#testRecoveryAndDoubleExecutionOnRsWithMeta() is enabled and run several times, it fails intermittently. Cause is meta recovery is done at two different places:

      • ServerCrashProcedure.processMeta()
      • HMaster.finishActiveMasterInitialization()
        and its not coordinated.

      When HMaster.finishActiveMasterInitialization() gets to submit splitMetaLog() first and while its running call from ServerCrashProcedure.processMeta() fails causing step to be retried again in a loop.

      When ServerCrashProcedure.processMeta() submits splitMetaLog after splitMetaLog from HMaster.finishActiveMasterInitialization() is finished, success is returned without doing any work.

      But if ServerCrashProcedure.processMeta() submits splitMetaLog request and while its going HMaster.finishActiveMasterInitialization() submits it test fails with exception.

      stack and I discussed the possible solution:
      Create RecoverMetaProcedure and call it where required. Procedure framework provides mutual exclusion and requires idempotence, which should fix the problem.

      Attachments

        1. HBASE-18261.master.001.patch
          2 kB
          Umesh Agashe
        2. hbase-18261.master.001.patch
          126 kB
          Umesh Agashe
        3. hbase-18261.master.002.patch
          126 kB
          Umesh Agashe
        4. hbase-18261.master.003.patch
          127 kB
          Umesh Agashe
        5. hbase-18261.master.004.patch
          127 kB
          Umesh Agashe
        6. hbase-18261.master.005.patch
          127 kB
          Umesh Agashe

        Issue Links

          Activity

            People

              uagashe Umesh Agashe
              uagashe Umesh Agashe
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: