shezm created HIVE-25416: ---------------------------- Summary: Hive metastore leak memory cause datanucleus-api-jdo bug Key: HIVE-25416 URL: https://issues.apache.org/jira/browse/HIVE-25416 Project: Hive Issue Type: Bug Environment:
Reporter: shezm Assignee: shezm Attachments: leak.jpg I encountered a memory leak case. The MAT info : !leak.jpg! Full error message is : {code:java} Cannot get Long result for param = 8 for column "`FUNCS`.`FUNC_ID`" : Operation not allowed after ResultSet closed{code} This is because there is a bug in the JDOPersistenceManager.retrieveAll code. {code:java} // code placeholder JDOPersistenceManager{ public void retrieveAll(Collection pcs, boolean useFetchPlan) { this.assertIsOpen(); ArrayList failures = new ArrayList(); Iterator i = pcs.iterator(); while(i.hasNext()) { try { this.jdoRetrieve(i.next(), useFetchPlan); } catch (RuntimeException var6) { failures.add(var6); } } if (!failures.isEmpty()) { throw new JDOUserException(Localiser.msg("010038"), (Exception[])((Exception[])failures.toArray(new Exception[failures.size()]))); } } } {code} In some extreme cases the function of next() does not work . This will result in a very large list like as shown above. The bug detail can see this : [https://github.com/datanucleus/datanucleus-api-jdo/issues/106] This problem is fixed in datanucleus-api-jdo version 5.2.6. So we should upgrade it . -- This message was sent by Atlassian Jira (v8.3.4#803005)