You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@carbondata.apache.org by ra...@apache.org on 2017/12/22 04:35:43 UTC

carbondata git commit: [CARBONDATA-1912] Handling lock issues

Repository: carbondata
Updated Branches:
  refs/heads/master a8cbacf3e -> fc93de163


[CARBONDATA-1912] Handling lock issues

Description :
Getting error trace in spark-sql console while executing compaction and alter table rename commands.

Scenario:
execute compaction and alter table rename queries in spark - sql
Even though operation is success , getting error trace on the console

Solution: In compaction we are already handling unlock after operation , so we can handle unlock in catch block instead of finally block.
In alter table rename operation: no need to unlock file on old location which will result error due to table name change.

This closes #1684


Project: http://git-wip-us.apache.org/repos/asf/carbondata/repo
Commit: http://git-wip-us.apache.org/repos/asf/carbondata/commit/fc93de16
Tree: http://git-wip-us.apache.org/repos/asf/carbondata/tree/fc93de16
Diff: http://git-wip-us.apache.org/repos/asf/carbondata/diff/fc93de16

Branch: refs/heads/master
Commit: fc93de163f472db92243fdfd5ef119765da97237
Parents: a8cbacf
Author: Manohar <ma...@gmail.com>
Authored: Tue Dec 19 19:12:14 2017 +0530
Committer: ravipesala <ra...@gmail.com>
Committed: Fri Dec 22 10:05:26 2017 +0530

----------------------------------------------------------------------
 .../command/management/CarbonAlterTableCompactionCommand.scala  | 5 ++---
 .../command/schema/CarbonAlterTableRenameCommand.scala          | 4 ++--
 2 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/fc93de16/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/CarbonAlterTableCompactionCommand.scala
----------------------------------------------------------------------
diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/CarbonAlterTableCompactionCommand.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/CarbonAlterTableCompactionCommand.scala
index 517fbda..45d3537 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/CarbonAlterTableCompactionCommand.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/management/CarbonAlterTableCompactionCommand.scala
@@ -227,7 +227,7 @@ case class CarbonAlterTableCompactionCommand(
                 "")
             OperationListenerBus.getInstance
               .fireEvent(alterTableCompactionPreStatusUpdateEvent, operationContext)
-
+          lock.unlock()
           } else {
             CarbonDataRDDFactory.startCompactionThreads(
               sqlContext,
@@ -241,9 +241,8 @@ case class CarbonAlterTableCompactionCommand(
         } catch {
           case e: Exception =>
             LOGGER.error(s"Exception in start compaction thread. ${ e.getMessage }")
+            lock.unlock()
             throw e
-        } finally {
-          lock.unlock()
         }
       } else {
         LOGGER.audit("Not able to acquire the compaction lock for table " +

http://git-wip-us.apache.org/repos/asf/carbondata/blob/fc93de16/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableRenameCommand.scala
----------------------------------------------------------------------
diff --git a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableRenameCommand.scala b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableRenameCommand.scala
index 1766064..28ed581 100644
--- a/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableRenameCommand.scala
+++ b/integration/spark2/src/main/scala/org/apache/spark/sql/execution/command/schema/CarbonAlterTableRenameCommand.scala
@@ -166,10 +166,10 @@ private[sql] case class CarbonAlterTableRenameCommand(
               sparkSession)
           renameBadRecords(newTableName, oldTableName, oldDatabaseName)
         }
+        // release lock from old location in case of any rename failure
+        AlterTableUtil.releaseLocks(locks)
         sys.error(s"Alter table rename table operation failed: ${e.getMessage}")
     } finally {
-      // release lock after command execution completion
-      AlterTableUtil.releaseLocks(locks)
       // case specific to rename table as after table rename old table path will not be found
       if (carbonTable != null) {
         val newTablePath = CarbonUtil