Uploaded image for project: 'Apache HAWQ'
  1. Apache HAWQ
  2. HAWQ-1777

Database reset due to transaction ID assignment problem

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Core
    • None

    Description

      AtAbort_AppendOnly

              while ((pending = (AppendOnlyHashEntryPendingCleanup *) hash_seq_search(&status)) != NULL)

              {

                  if (pending->nestedLevel >= currentLevel)

                  {

                      /*

                       * the sub transaction which include the truncate/alter operator has been aborted,

                       * so its aoentry is not staled anymore.

                       */

       

                      aoentry = AORelLookupHashEntry(pending->relid);

       

                      if (aoentry)

                     

      {                     Insist(aoentry->staleTid == CurrentXid);                     aoentry->staleTid = InvalidTransactionId; //clear flag stale                 }

       

                      hash_search(AppendOnlyHashEntryPendingDeleteCleanup,

                              (void *) &pending->relid,

                              HASH_REMOVE,

                              &found);

                  }

              }

      If an error occurs during execution, aoentry->staleTid is not assigned,abort will failed and 

      AOSegFileLock cannot free, which maybe cause when abort the entire transaction cannot get the lock

       

       

      Attachments

        Activity

          People

            huor Ruilong Huo
            LyndonYang LyndonYang
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: