[ https://issues.apache.org/jira/browse/HIVE-15956?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409383#comment-16409383 ]
Ganesha Shreedhara commented on HIVE-15956: ------------------------------------------- I tested that this patch works fine by dropping the partitions in batches. This will help when there are thousands of partitions to drop. I tested dropping ~40k partitions in the batches of 500. It would be great if someone can review this patch. > StackOverflowError when drop lots of partitions > ----------------------------------------------- > > Key: HIVE-15956 > URL: https://issues.apache.org/jira/browse/HIVE-15956 > Project: Hive > Issue Type: Bug > Components: Metastore > Affects Versions: 1.3.0, 2.2.0 > Reporter: Niklaus Xiao > Assignee: Niklaus Xiao > Priority: Major > Attachments: HIVE-15956.patch > > > Repro steps: > 1. Create partitioned table and add 10000 partitions > {code} > create table test_partition(id int) partitioned by (dt int); > alter table test_partition add partition(dt=1); > alter table test_partition add partition(dt=3); > alter table test_partition add partition(dt=4); > ... > alter table test_partition add partition(dt=10000); > {code} > 2. Drop 9000 partitions: > {code} > alter table test_partition drop partition(dt<9000); > {code} > Step 2 will fail with StackOverflowError: > {code} > Exception in thread "pool-7-thread-161" java.lang.StackOverflowError > at > org.datanucleus.query.expression.ExpressionCompiler.isOperator(ExpressionCompiler.java:819) > at > org.datanucleus.query.expression.ExpressionCompiler.compileOrAndExpression(ExpressionCompiler.java:190) > at > org.datanucleus.query.expression.ExpressionCompiler.compileExpression(ExpressionCompiler.java:179) > at > org.datanucleus.query.expression.ExpressionCompiler.compileOrAndExpression(ExpressionCompiler.java:192) > at > org.datanucleus.query.expression.ExpressionCompiler.compileExpression(ExpressionCompiler.java:179) > at > org.datanucleus.query.expression.ExpressionCompiler.compileOrAndExpression(ExpressionCompiler.java:192) > at > org.datanucleus.query.expression.ExpressionCompiler.compileExpression(ExpressionCompiler.java:179) > {code} > {code} > Exception in thread "pool-7-thread-198" java.lang.StackOverflowError > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:83) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > at > org.datanucleus.query.expression.DyadicExpression.bind(DyadicExpression.java:87) > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)