Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-22365

"MetaException: Couldn't acquire the DB log notification lock because we reached the maximum # of retries" during metadata scale tests

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None
    • None

    Description

      The issue is because of the leaked open transaction in Objectstore::getPartition function. Here if jdo throws some exception during convertToPart then commit is not done.
      openTransaction();
      MTable table = this.getMTable(catName, dbName, tableName);
      MPartition mpart = getMPartition(catName, dbName, tableName, part_vals);
      Partition part = convertToPart(mpart);
      commitTransaction();
       

      Because of this, all subsequent transactions of this thread are not committed.

      if ((openTrasactionCalls == 0) && currentTransaction.isActive()) {
        transactionStatus = TXN_STATUS.COMMITED;
        currentTransaction.commit();
      } 

      This is causing the select for update lock on NOTIFICATION_SEQUENCE to never be released and all other threads are failing to get this lock and timing out.

      So the fix to do the operation is a try-catch block and rollback the txn in case of failure.

       

      Attachments

        Issue Links

          Activity

            People

              maheshk114 mahesh kumar behera
              maheshk114 mahesh kumar behera
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: