[jira] [Commented] (HIVE-6579) HiveLockObjectData constructor makes too many queryStr instance causing oom
[ https://issues.apache.org/jira/browse/HIVE-6579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13943995#comment-13943995 ] Hive QA commented on HIVE-6579: --- {color:red}Overall{color}: -1 no tests executed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12635493/HIVE-6579.02.patch Test results: http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/1901/testReport Console output: http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/1901/console Messages: {noformat} Executing org.apache.hive.ptest.execution.PrepPhase Tests exited with: NonZeroExitCodeException Command 'bash /data/hive-ptest/working/scratch/source-prep.sh' failed with exit status 1 and output '+ [[ -n '' ]] + export 'ANT_OPTS=-Xmx1g -XX:MaxPermSize=256m ' + ANT_OPTS='-Xmx1g -XX:MaxPermSize=256m ' + export 'M2_OPTS=-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128' + M2_OPTS='-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128' + cd /data/hive-ptest/working/ + tee /data/hive-ptest/logs/PreCommit-HIVE-Build-1901/source-prep.txt + [[ false == \t\r\u\e ]] + mkdir -p maven ivy + [[ svn = \s\v\n ]] + [[ -n '' ]] + [[ -d apache-svn-trunk-source ]] + [[ ! -d apache-svn-trunk-source/.svn ]] + [[ ! -d apache-svn-trunk-source ]] + cd apache-svn-trunk-source + svn revert -R . Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java' Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseSerDe.java' Reverted 'common/src/java/org/apache/hadoop/hive/conf/HiveConf.java' Reverted 'serde/src/test/org/apache/hadoop/hive/serde2/lazy/TestLazyPrimitive.java' Reverted 'serde/src/test/org/apache/hadoop/hive/serde2/thrift_test/CreateSequenceFile.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazySimpleSerDe.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/columnar/ColumnarSerDe.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/columnar/LazyBinaryColumnarSerDe.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryUtils.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinarySerDe.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/dynamic_type/DynamicSerDe.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/primitive/PrimitiveObjectInspectorConverter.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/ByteStream.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/io/HiveDecimalWritable.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/io/DateWritable.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/io/TimestampWritable.java' Reverted 'ql/src/test/results/clientpositive/mapjoin_mapjoin.q.out' Reverted 'ql/src/test/results/clientpositive/tez/mapjoin_mapjoin.q.out' Reverted 'ql/src/test/results/clientpositive/tez/mapjoin_decimal.q.out' Reverted 'ql/src/test/org/apache/hadoop/hive/ql/exec/persistence/TestMapJoinEqualityTableContainer.java' Reverted 'ql/src/test/org/apache/hadoop/hive/ql/exec/persistence/TestMapJoinTableContainer.java' Reverted 'ql/src/test/queries/clientpositive/mapjoin_decimal.q' Reverted 'ql/src/test/queries/clientpositive/mapjoin_mapjoin.q' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/HashTableSinkOperator.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/HashMapWrapper.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinKey.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinRowContainer.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainer.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/MapJoinTableContainerSerDe.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/AbstractMapJoinTableContainer.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/MapJoinOperator.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizedColumnarSerDe.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorMapJoinOperator.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/tez/HashTableLoader.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/Driver.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/udf/UDFToString.java' ++ awk '{print $2}' ++ egrep -v '^X|^Performing status on external' ++ svn status --no-ignore + rm -rf target datanucleus.log ant/target shims/target shims/0.20/target shims/0.20S/target shims/0.23/target shims/aggregator/target shims/common/target shims/common-secure/target packaging/target hbase-handler/target hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java.orig testutils/target jdbc/target metastore/target itests/target itests/hcatalog-unit/target itests/te
[jira] [Commented] (HIVE-6579) HiveLockObjectData constructor makes too many queryStr instance causing oom
[ https://issues.apache.org/jira/browse/HIVE-6579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13930387#comment-13930387 ] Xuefu Zhang commented on HIVE-6579: --- Okay. You probably need to rebase your patch so that the test can run. > HiveLockObjectData constructor makes too many queryStr instance causing oom > --- > > Key: HIVE-6579 > URL: https://issues.apache.org/jira/browse/HIVE-6579 > Project: Hive > Issue Type: Improvement >Reporter: xieyuchen > Attachments: HIVE-6579.1.patch.txt > > > We have a huge sql which full outer joins 10+ partitoned tables, each table > has at least 1k partitions. The sql has 300kb in length(it constructed > automatically of cause). > So when we running this sql, there are over 10k HiveLockObjectData instances. > Because of the constructor of HiveLockObjectData trim the queryStr, there > will be 10k individual String instances, each has 300kb in length! Then the > Hive client will get an oom exception. > Trying to trim the queryStr in Driver.compile function instead of doing it in > HiveLockObjectData constructor to reduce memory wasting. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-6579) HiveLockObjectData constructor makes too many queryStr instance causing oom
[ https://issues.apache.org/jira/browse/HIVE-6579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13930012#comment-13930012 ] xieyuchen commented on HIVE-6579: - [~xuefuz] thanks for your reply. Except the testing code, there are actually 2 callers of this constructor: o.a.h.h.ql.Driver.acquireReadWriteLocks and o.a.h.h.ql.exec.DDLTask.lockTable The first situation will be fix in this patch. I think the second one will not cause oom. But if we have to keep HiveLockObjectData.queryStr trimmed, we can keep the trimming call in the constructor. > HiveLockObjectData constructor makes too many queryStr instance causing oom > --- > > Key: HIVE-6579 > URL: https://issues.apache.org/jira/browse/HIVE-6579 > Project: Hive > Issue Type: Improvement >Reporter: xieyuchen > Attachments: HIVE-6579.1.patch.txt > > > We have a huge sql which full outer joins 10+ partitoned tables, each table > has at least 1k partitions. The sql has 300kb in length(it constructed > automatically of cause). > So when we running this sql, there are over 10k HiveLockObjectData instances. > Because of the constructor of HiveLockObjectData trim the queryStr, there > will be 10k individual String instances, each has 300kb in length! Then the > Hive client will get an oom exception. > Trying to trim the queryStr in Driver.compile function instead of doing it in > HiveLockObjectData constructor to reduce memory wasting. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (HIVE-6579) HiveLockObjectData constructor makes too many queryStr instance causing oom
[ https://issues.apache.org/jira/browse/HIVE-6579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13924972#comment-13924972 ] Hive QA commented on HIVE-6579: --- {color:red}Overall{color}: -1 no tests executed Here are the results of testing the latest attachment: https://issues.apache.org/jira/secure/attachment/12633317/HIVE-6579.1.patch.txt Test results: http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/1663/testReport Console output: http://bigtop01.cloudera.org:8080/job/PreCommit-HIVE-Build/1663/console Messages: {noformat} Executing org.apache.hive.ptest.execution.PrepPhase Tests exited with: NonZeroExitCodeException Command 'bash /data/hive-ptest/working/scratch/source-prep.sh' failed with exit status 1 and output '+ [[ -n '' ]] + export 'ANT_OPTS=-Xmx1g -XX:MaxPermSize=256m ' + ANT_OPTS='-Xmx1g -XX:MaxPermSize=256m ' + export 'M2_OPTS=-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128' + M2_OPTS='-Xmx1g -XX:MaxPermSize=256m -Dhttp.proxyHost=localhost -Dhttp.proxyPort=3128' + cd /data/hive-ptest/working/ + tee /data/hive-ptest/logs/PreCommit-HIVE-Build-1663/source-prep.txt + [[ false == \t\r\u\e ]] + mkdir -p maven ivy + [[ svn = \s\v\n ]] + [[ -n '' ]] + [[ -d apache-svn-trunk-source ]] + [[ ! -d apache-svn-trunk-source/.svn ]] + [[ ! -d apache-svn-trunk-source ]] + cd apache-svn-trunk-source + svn revert -R . Reverted 'hbase-handler/src/test/org/apache/hadoop/hive/hbase/HBaseTestCompositeKey.java' Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java' Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseSerDe.java' Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseStorageHandler.java' Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/LazyHBaseRow.java' Reverted 'hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseCompositeKey.java' Reverted 'hbase-handler/pom.xml' Reverted 'itests/util/pom.xml' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyObjectBase.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyObject.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazy/objectinspector/LazySimpleStructObjectInspector.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazy/LazyStruct.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/columnar/ColumnarStructBase.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryObject.java' Reverted 'serde/src/java/org/apache/hadoop/hive/serde2/lazybinary/LazyBinaryStruct.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/ppd/OpProcFactory.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeDescUtils.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/plan/TableScanDesc.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/metadata/HiveStoragePredicateHandler.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/exec/Utilities.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/index/IndexSearchCondition.java' Reverted 'ql/src/java/org/apache/hadoop/hive/ql/index/IndexPredicateAnalyzer.java' ++ egrep -v '^X|^Performing status on external' ++ awk '{print $2}' ++ svn status --no-ignore + rm -rf target datanucleus.log ant/target shims/target shims/0.20/target shims/0.20S/target shims/0.23/target shims/aggregator/target shims/common/target shims/common-secure/target packaging/target hbase-handler/target hbase-handler/src/test/results/positive/hbase_custom_key.q.out hbase-handler/src/test/results/positive/hbase_custom_key2.q.out hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestHBaseKeyFactory.java hbase-handler/src/test/org/apache/hadoop/hive/hbase/TestHBaseKeyFactory2.java hbase-handler/src/test/queries/positive/hbase_custom_key.q hbase-handler/src/test/queries/positive/hbase_custom_key2.q hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseLazyObjectFactory.java hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseScanRange.java hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseWritableKeyFactory.java hbase-handler/src/java/org/apache/hadoop/hive/hbase/HBaseKeyFactory.java testutils/target jdbc/target metastore/target itests/target itests/hcatalog-unit/target itests/test-serde/target itests/qtest/target itests/hive-unit/target itests/custom-serde/target itests/util/target hcatalog/target hcatalog/storage-handlers/hbase/target hcatalog/server-extensions/target hcatalog/core/target hcatalog/webhcat/svr/target hcatalog/webhcat/java-client/target hcatalog/hcatalog-pig-adapter/target hwi/target common/target common/src/gen service/target contrib/target serde/target serde/src/java/org/apache/hadoop/hive/serde2/StructObjectBaseInspector.java serde/src/java/org/apache/hadoop/hive/serde2/StructObject.java beeline/target odbc/target cli
[jira] [Commented] (HIVE-6579) HiveLockObjectData constructor makes too many queryStr instance causing oom
[ https://issues.apache.org/jira/browse/HIVE-6579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13924487#comment-13924487 ] Xuefu Zhang commented on HIVE-6579: --- [~teledi] Thanks for the patch. I saw other callers of the constructor in question. Do we need to take care of those callers as well? > HiveLockObjectData constructor makes too many queryStr instance causing oom > --- > > Key: HIVE-6579 > URL: https://issues.apache.org/jira/browse/HIVE-6579 > Project: Hive > Issue Type: Improvement >Reporter: xieyuchen > Attachments: HIVE-6579.1.patch.txt > > > We have a huge sql which full outer joins 10+ partitoned tables, each table > has at least 1k partitions. The sql has 300kb in length(it constructed > automatically of cause). > So when we running this sql, there are over 10k HiveLockObjectData instances. > Because of the constructor of HiveLockObjectData trim the queryStr, there > will be 10k individual String instances, each has 300kb in length! Then the > Hive client will get an oom exception. > Trying to trim the queryStr in Driver.compile function instead of doing it in > HiveLockObjectData constructor to reduce memory wasting. -- This message was sent by Atlassian JIRA (v6.2#6252)