hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hive QA (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-18885) DbNotificationListener has a deadlock between Java and DB locks (2.x line)
Date Sat, 24 Mar 2018 18:41:00 GMT

    [ https://issues.apache.org/jira/browse/HIVE-18885?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16412731#comment-16412731
] 

Hive QA commented on HIVE-18885:
--------------------------------



Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12916017/HIVE-18885.02.branch-2.patch

{color:red}ERROR:{color} -1 due to build exiting with an error

Test results: https://builds.apache.org/job/PreCommit-HIVE-Build/9802/testReport
Console output: https://builds.apache.org/job/PreCommit-HIVE-Build/9802/console
Test logs: http://104.198.109.242/logs/PreCommit-HIVE-Build-9802/

Messages:
{noformat}
Executing org.apache.hive.ptest.execution.TestCheckPhase
Executing org.apache.hive.ptest.execution.PrepPhase
Tests exited with: NonZeroExitCodeException
Command 'bash /data/hiveptest/working/scratch/source-prep.sh' failed with exit status 1 and
output '+ date '+%Y-%m-%d %T.%3N'
2018-03-24 18:38:42.030
+ [[ -n /usr/lib/jvm/java-8-openjdk-amd64 ]]
+ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+ JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
+ export PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ PATH=/usr/lib/jvm/java-8-openjdk-amd64/bin/:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
+ export 'ANT_OPTS=-Xmx1g -XX:MaxPermSize=256m '
+ ANT_OPTS='-Xmx1g -XX:MaxPermSize=256m '
+ export 'MAVEN_OPTS=-Xmx1g '
+ MAVEN_OPTS='-Xmx1g '
+ cd /data/hiveptest/working/
+ tee /data/hiveptest/logs/PreCommit-HIVE-Build-9802/source-prep.txt
+ [[ false == \t\r\u\e ]]
+ mkdir -p maven ivy
+ [[ git = \s\v\n ]]
+ [[ git = \g\i\t ]]
+ [[ -z master ]]
+ [[ -d apache-github-source-source ]]
+ [[ ! -d apache-github-source-source/.git ]]
+ [[ ! -d apache-github-source-source ]]
+ date '+%Y-%m-%d %T.%3N'
2018-03-24 18:38:42.033
+ cd apache-github-source-source
+ git fetch origin
>From https://github.com/apache/hive
   ba18062..696affa  master     -> origin/master
+ git reset --hard HEAD
HEAD is now at ba18062 HIVE-18855 : Fix unit test TestMiniLlapLocalCliDriver.testCliDriver[results_cache_1]
(Jason Dere via Sergey Shelukhin)
+ git clean -f -d
+ git checkout master
Already on 'master'
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)
+ git reset --hard origin/master
HEAD is now at 696affa HIVE-18780 : Improve schema discovery For Druid Storage Handler (Slim
Bouguerra via Ashutosh Chauhan)
+ git merge --ff-only origin/master
Already up-to-date.
+ date '+%Y-%m-%d %T.%3N'
2018-03-24 18:38:44.301
+ rm -rf ../yetus_PreCommit-HIVE-Build-9802
+ mkdir ../yetus_PreCommit-HIVE-Build-9802
+ git gc
+ cp -R . ../yetus_PreCommit-HIVE-Build-9802
+ mkdir /data/hiveptest/logs/PreCommit-HIVE-Build-9802/yetus
+ patchCommandPath=/data/hiveptest/working/scratch/smart-apply-patch.sh
+ patchFilePath=/data/hiveptest/working/scratch/build.patch
+ [[ -f /data/hiveptest/working/scratch/build.patch ]]
+ chmod +x /data/hiveptest/working/scratch/smart-apply-patch.sh
+ /data/hiveptest/working/scratch/smart-apply-patch.sh /data/hiveptest/working/scratch/build.patch
error: a/hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java:
does not exist in index
error: patch failed: hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java:83
Falling back to three-way merge...
Applied patch to 'hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java'
with conflicts.
Going to apply patch with: git apply -p1
error: patch failed: hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java:83
Falling back to three-way merge...
Applied patch to 'hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java'
with conflicts.
U hcatalog/server-extensions/src/main/java/org/apache/hive/hcatalog/listener/DbNotificationListener.java
+ exit 1
'
{noformat}

This message is automatically generated.

ATTACHMENT ID: 12916017 - PreCommit-HIVE-Build

> DbNotificationListener has a deadlock between Java and DB locks (2.x line)
> --------------------------------------------------------------------------
>
>                 Key: HIVE-18885
>                 URL: https://issues.apache.org/jira/browse/HIVE-18885
>             Project: Hive
>          Issue Type: Bug
>          Components: Hive, Metastore
>    Affects Versions: 2.3.2
>            Reporter: Alexander Kolbasov
>            Assignee: Vihang Karajgaonkar
>            Priority: Major
>         Attachments: HIVE-18885.01.branch-2.patch, HIVE-18885.02.branch-2.patch
>
>
> You can see the problem from looking at the code, but it actually created severe problems
for real life Hive user.
> When {{alter table}} has {{cascade}} option it does the following:
> {code:java}
>          msdb.openTransaction()
>           ...
>           List<Partition> parts = msdb.getPartitions(dbname, name, -1);
>           for (Partition part : parts) {
>             List<FieldSchema> oldCols = part.getSd().getCols();
>             part.getSd().setCols(newt.getSd().getCols());
>             String oldPartName = Warehouse.makePartName(oldt.getPartitionKeys(), part.getValues());
>             updatePartColumnStatsForAlterColumns(msdb, part, oldPartName, part.getValues(),
oldCols, part);
>             msdb.alterPartition(dbname, name, part.getValues(), part);
>           }
>  {code}
> So it walks all partitions (and this may be huge list) and does some non-trivial operations
in one single uber-transaction.
> When DbNotificationListener is enabled, it adds an event for each partition, all while
> holding a row lock on NOTIFICATION_SEQUENCE table. As a result, while this is happening
no other write DDL can proceed. This can sometimes cause DB lock timeouts which cause HMS
level operation retries which make things even worse.
> In one particular case this pretty much made HMS unusable.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message