Karen Coppage created HIVE-24001: ------------------------------------ Summary: Don't cache MapWork in tez/ObjectCache during query-based compaction Key: HIVE-24001 URL: https://issues.apache.org/jira/browse/HIVE-24001 Project: Hive Issue Type: Bug Reporter: Karen Coppage Assignee: Karen Coppage
Query-based major compaction can fail intermittently with the following issue: {code:java} Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: One writer is supposed to handle only one bucket. We saw these 2 different buckets: 1 and 6 at org.apache.hadoop.hive.ql.udf.generic.GenericUDFValidateAcidSortOrder.evaluate(GenericUDFValidateAcidSortOrder.java:77) {code} This is consistently preceded in the application log with: {code:java} [INFO] [TezChild] |tez.ObjectCache|: Found hive_20200804185133_f04cca69-fa30-4f1b-a5fe-80fc2d749f48_Map 1__MAP_PLAN__ in cache with value: org.apache.hadoop.hive.ql.plan.MapWork@74652101 {code} Alternatively, when MapRecordProcessor doesn't find mapWork in tez/ObjectCache (but instead caches mapWork), major compaction succeeds. The failure happens because, if MapWork is reused, GenericUDFValidateAcidSortOrder (which is called during compaction) is also reused on splits belonging to two different buckets, which produces an error. Solution is to avoid storing MapWork in the ObjectCache during query-based compaction. -- This message was sent by Atlassian Jira (v8.3.4#803005)