[ 
https://issues.apache.org/jira/browse/HIVE-30080?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Urmas Tamassy updated HIVE-30080:
---------------------------------
    Description: 
As noted in the title, certain types of queries can get stuck during Shared 
work optimizer step during compilation as indicated in HiveServer2 logs and in 
the thread dumps taken while the query is stuck:
{code:java}
INFO  org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer: 
[9240622d-5efe-464e-9c38-c8008504a54e9240622d-5efe-464e-9c38-c8008504a54e 
HiveServer2-Handler-Pool: Thread-3389141]: SharedWorkOptimizer start {code}
{code:java}
at java.util.HashMap$HashIterator.<init>([email protected]/HashMap.java:1593) at 
java.util.HashMap$KeyIterator.<init>([email protected]/HashMap.java:1626) at 
java.util.HashMap$KeySet.iterator([email protected]/HashMap.java:991) at 
java.util.HashSet.iterator([email protected]/HashSet.java:182) at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.findDescendantWorkOperators(SharedWorkOptimizer.java:2081)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.validPreConditions(SharedWorkOptimizer.java:1944)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.sharedWorkOptimization(SharedWorkOptimizer.java:471)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.runSharedWorkOptimization(SharedWorkOptimizer.java:287)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.transform(SharedWorkOptimizer.java:184)
 at 
org.apache.hadoop.hive.ql.parse.TezCompiler.optimizeOperatorPlan(TezCompiler.java:252)
 at org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:186) 
at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.compilePlan(SemanticAnalyzer.java:13247)
 at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13472)
 at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:467)
 at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:360)
 at 
org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:188)
 at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:360)
 at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:225) at 
org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:110) at 
org.apache.hadoop.hive.ql.Driver.compile(Driver.java:500) at 
org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:452) at 
org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:416) at 
org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:410) at 
org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:127)
 at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:235)
{code}
Attaching [^swo_hang.q] test query to reproduce the issue. As noted in the 
comments in the file the test requires hive.auto.convert.join=false.

At this time it is uncertain what the exact conditions are for the issue to 
occur as the query needs to be slightly complex (3-way join with additional 
conditions, group by etc.) and may depend on the input table metadata.

  was:
As noted in the title, certain types of queries can get stuck during Shared 
work optimizer step as indicated in HiveServer2 logs and in the thread dumps 
taken while the query is stuck:
{code:java}
INFO  org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer: 
[9240622d-5efe-464e-9c38-c8008504a54e9240622d-5efe-464e-9c38-c8008504a54e 
HiveServer2-Handler-Pool: Thread-3389141]: SharedWorkOptimizer start {code}
{code:java}
at java.util.HashMap$HashIterator.<init>([email protected]/HashMap.java:1593) at 
java.util.HashMap$KeyIterator.<init>([email protected]/HashMap.java:1626) at 
java.util.HashMap$KeySet.iterator([email protected]/HashMap.java:991) at 
java.util.HashSet.iterator([email protected]/HashSet.java:182) at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.findDescendantWorkOperators(SharedWorkOptimizer.java:2081)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.validPreConditions(SharedWorkOptimizer.java:1944)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.sharedWorkOptimization(SharedWorkOptimizer.java:471)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.runSharedWorkOptimization(SharedWorkOptimizer.java:287)
 at 
org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.transform(SharedWorkOptimizer.java:184)
 at 
org.apache.hadoop.hive.ql.parse.TezCompiler.optimizeOperatorPlan(TezCompiler.java:252)
 at org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:186) 
at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.compilePlan(SemanticAnalyzer.java:13247)
 at 
org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13472)
 at 
org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:467)
 at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:360)
 at 
org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:188)
 at 
org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:360)
 at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:225) at 
org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:110) at 
org.apache.hadoop.hive.ql.Driver.compile(Driver.java:500) at 
org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:452) at 
org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:416) at 
org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:410) at 
org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:127)
 at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:235)
{code}
Attaching [^swo_hang.q] test query to reproduce the issue. As noted in the 
comments in the file the test requires hive.auto.convert.join=false.

At this time it is uncertain what the exact conditions are for the issue to 
occur as the query needs to be slightly complex (3-way join with additional 
conditions, group by etc.) and may depend on the input table metadata.


> Queries can get stuck compiling during SharedWorkOptimizer
> ----------------------------------------------------------
>
>                 Key: HIVE-30080
>                 URL: https://issues.apache.org/jira/browse/HIVE-30080
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 4.2.1
>            Reporter: Urmas Tamassy
>            Priority: Major
>              Labels: compilation
>         Attachments: swo_hang.q
>
>
> As noted in the title, certain types of queries can get stuck during Shared 
> work optimizer step during compilation as indicated in HiveServer2 logs and 
> in the thread dumps taken while the query is stuck:
> {code:java}
> INFO  org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer: 
> [9240622d-5efe-464e-9c38-c8008504a54e9240622d-5efe-464e-9c38-c8008504a54e 
> HiveServer2-Handler-Pool: Thread-3389141]: SharedWorkOptimizer start {code}
> {code:java}
> at java.util.HashMap$HashIterator.<init>([email protected]/HashMap.java:1593) 
> at java.util.HashMap$KeyIterator.<init>([email protected]/HashMap.java:1626) 
> at java.util.HashMap$KeySet.iterator([email protected]/HashMap.java:991) at 
> java.util.HashSet.iterator([email protected]/HashSet.java:182) at 
> org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.findDescendantWorkOperators(SharedWorkOptimizer.java:2081)
>  at 
> org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.validPreConditions(SharedWorkOptimizer.java:1944)
>  at 
> org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.sharedWorkOptimization(SharedWorkOptimizer.java:471)
>  at 
> org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.runSharedWorkOptimization(SharedWorkOptimizer.java:287)
>  at 
> org.apache.hadoop.hive.ql.optimizer.SharedWorkOptimizer.transform(SharedWorkOptimizer.java:184)
>  at 
> org.apache.hadoop.hive.ql.parse.TezCompiler.optimizeOperatorPlan(TezCompiler.java:252)
>  at 
> org.apache.hadoop.hive.ql.parse.TaskCompiler.compile(TaskCompiler.java:186) 
> at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.compilePlan(SemanticAnalyzer.java:13247)
>  at 
> org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:13472)
>  at 
> org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:467)
>  at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:360)
>  at 
> org.apache.hadoop.hive.ql.parse.ExplainSemanticAnalyzer.analyzeInternal(ExplainSemanticAnalyzer.java:188)
>  at 
> org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:360)
>  at org.apache.hadoop.hive.ql.Compiler.analyze(Compiler.java:225) at 
> org.apache.hadoop.hive.ql.Compiler.compile(Compiler.java:110) at 
> org.apache.hadoop.hive.ql.Driver.compile(Driver.java:500) at 
> org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:452) at 
> org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:416) at 
> org.apache.hadoop.hive.ql.Driver.compileAndRespond(Driver.java:410) at 
> org.apache.hadoop.hive.ql.reexec.ReExecDriver.compileAndRespond(ReExecDriver.java:127)
>  at org.apache.hadoop.hive.ql.reexec.ReExecDriver.run(ReExecDriver.java:235)
> {code}
> Attaching [^swo_hang.q] test query to reproduce the issue. As noted in the 
> comments in the file the test requires hive.auto.convert.join=false.
> At this time it is uncertain what the exact conditions are for the issue to 
> occur as the query needs to be slightly complex (3-way join with additional 
> conditions, group by etc.) and may depend on the input table metadata.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to