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

Hive QA commented on HIVE-22402:
--------------------------------



Here are the results of testing the latest attachment:
https://issues.apache.org/jira/secure/attachment/12984201/HIVE-22402.4.patch

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

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

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'
2020-03-19 02:06:51.634
+ [[ -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-21169/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'
2020-03-19 02:06:51.636
+ cd apache-github-source-source
+ git fetch origin
+ git reset --hard HEAD
HEAD is now at 2c5a109 HIVE-22955 PreUpgradeTool can fail because access to 
CharsetDecoder is not synchronized (Gergely Hanko, reviewed by Miklos Gergely)
+ git clean -f -d
Removing ${project.basedir}/
Removing itests/${project.basedir}/
Removing standalone-metastore/metastore-server/src/gen/
+ git checkout master
Already on 'master'
Your branch is up-to-date with 'origin/master'.
+ git reset --hard origin/master
HEAD is now at 2c5a109 HIVE-22955 PreUpgradeTool can fail because access to 
CharsetDecoder is not synchronized (Gergely Hanko, reviewed by Miklos Gergely)
+ git merge --ff-only origin/master
Already up-to-date.
+ date '+%Y-%m-%d %T.%3N'
2020-03-19 02:06:52.567
+ rm -rf ../yetus_PreCommit-HIVE-Build-21169
+ mkdir ../yetus_PreCommit-HIVE-Build-21169
+ git gc
+ cp -R . ../yetus_PreCommit-HIVE-Build-21169
+ mkdir /data/hiveptest/logs/PreCommit-HIVE-Build-21169/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
Trying to apply the patch with -p0
error: a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java: does not 
exist in index
error: a/common/src/java/org/apache/hadoop/hive/ql/log/PerfLogger.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/Driver.java: does not exist in 
index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/MoveTask.java: does not 
exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/SerializationUtilities.java: does 
not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/SparkHashTableSinkOperator.java: 
does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java: does not 
exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkDynamicPartitionPruner.java:
 does not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkMapRecordHandler.java: 
does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkPlan.java: does 
not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkPlanGenerator.java: 
does not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkRecordHandler.java: 
does not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkReduceRecordHandler.java:
 does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java: does 
not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MapRecordProcessor.java: does 
not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/MergeFileRecordProcessor.java: 
does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/RecordProcessor.java: 
does not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordProcessor.java: 
does not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezProcessor.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java: does not 
exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/io/CombineHiveInputFormat.java: 
does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/log/LogDivertAppender.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java: does not 
exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveMaterializedViewsRegistry.java:
 does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Optimizer.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/Transform.java: does 
not exist in index
error: 
a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/ppr/PartitionPruner.java: 
does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/parse/CalcitePlanner.java: does 
not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java: does not 
exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkCompiler.java: 
does not exist in index
error: a/ql/src/java/org/apache/hadoop/hive/ql/session/SessionState.java: does 
not exist in index
Trying to apply the patch with -p1
error: patch failed: ql/src/java/org/apache/hadoop/hive/ql/Driver.java:22
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/Driver.java' with 
conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java:32
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java' 
cleanly.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkPlan.java:31
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkPlan.java' cleanly.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java:125
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java' with 
conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java:234
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java' 
cleanly.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java:389
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java' 
with conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java:2184
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java' 
with conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java:19
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java' 
with conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkCompiler.java:17
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkCompiler.java' with 
conflicts.
Going to apply patch with: git apply -p1
error: patch failed: ql/src/java/org/apache/hadoop/hive/ql/Driver.java:22
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/Driver.java' with 
conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java:32
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java' 
cleanly.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkPlan.java:31
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkPlan.java' cleanly.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java:125
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java' with 
conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java:234
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/exec/tez/ReduceRecordSource.java' 
cleanly.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java:389
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java' 
with conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java:2184
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java' 
with conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java:19
Falling back to three-way merge...
Applied patch to 'ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java' 
with conflicts.
error: patch failed: 
ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkCompiler.java:17
Falling back to three-way merge...
Applied patch to 
'ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkCompiler.java' with 
conflicts.
U ql/src/java/org/apache/hadoop/hive/ql/Driver.java
U ql/src/java/org/apache/hadoop/hive/ql/exec/spark/SparkTask.java
U ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezTask.java
U ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
U ql/src/java/org/apache/hadoop/hive/ql/parse/TezCompiler.java
U ql/src/java/org/apache/hadoop/hive/ql/parse/spark/SparkCompiler.java
+ result=1
+ '[' 1 -ne 0 ']'
+ rm -rf yetus_PreCommit-HIVE-Build-21169
+ exit 1
'
{noformat}

This message is automatically generated.

ATTACHMENT ID: 12984201 - PreCommit-HIVE-Build

> Deprecate and Replace Hive PerfLogger
> -------------------------------------
>
>                 Key: HIVE-22402
>                 URL: https://issues.apache.org/jira/browse/HIVE-22402
>             Project: Hive
>          Issue Type: Improvement
>    Affects Versions: 4.0.0
>            Reporter: David Mollitor
>            Assignee: David Mollitor
>            Priority: Major
>         Attachments: HIVE-22402.1.patch, HIVE-22402.2.patch, 
> HIVE-22402.3.patch, HIVE-22402.4.patch
>
>
> Recently I wanted to add some additional capability, and add more, 
> performance logging to support my troubleshooting efforts. I started looking 
> at PerfLogger and started to examine its usage. I discovered a few things:
>  # Since 'loggers' must be open and closed manually, I found a couple of 
> places where loggers were opened, but not closed, rendering them useless
>  # Since 'loggers' must be closed manually, I found a few places where an 
> early-return or Exception thrown would cause a logger to not be closed, 
> thereby rendering it useless
>  # Session information is not logged, so it can be difficult to precisely 
> pinpoint which session is taking lots of time
>  # PerfLogger overloaded. Most of the time, it's being used as a simple timer 
> mechanism with automatic logging in SLF4J debug. However, it is also a facade 
> over the Hive Metrics subsystem and timing results are automatically 
> published to Metrics and then there becomes this dependency on a 'logger' to 
> be able to access metric data as well.
> The last bullet is the most challenging part and why I propose to deprecate 
> the Hive {{PerfLogger}} and not simply remove it. I am proposing a new 
> system... a {{PerfTimer}} that is allows for Java 8's try-with-resources 
> feature to protect against the developer having to care about manually close 
> measurements and not having to carefully consider all early-exits. The base 
> implementation logs to SLF4J. An extended version automatically publishes to 
> the Hive Metric subsystem as well.
> The current Hive {{PerfLogger}} has a bit of a clunky system for allowing 
> plugable implementations. However, the current default implementation has a 
> side-effect of also publishing timing information to the Hive Metrics 
> subsystem. There are code sections that look up various timers in the Metrics 
> Subsytem and publish the results back to the client. Since, in theory, the 
> implementation is plugable, any other implementation that does not also have 
> this side-effect of also publishing to the Metrics Subsystem will break these 
> non-optional code paths.  Also, these code paths create and interact with 
> {{PerfLoggers in a static way, and then the publishing code pulls the data 
> from the {{PerfLogger}}}} (as a facade to the Metrics subsystem) in a static 
> way. Therefore, when I tried to replace the entire {{PerfLogger}} code, I 
> came across an issue because there is not (and should not) be a way to just 
> statically pull this information down from any point in the code. Information 
> that is required for publishing should be passed around within some sort of 
> context object, separate from the Metrics subsystem. There was no obvious way 
> to string a new {{PerfTimer}} to all the required locations. I propose 
> marking the {{PerfLogger}} as deprecated and leaving these complex section 
> alone. Instead, replace only the simple "I want a timer" use cases.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to