[ https://issues.apache.org/jira/browse/HIVE-25416?focusedWorklogId=756969&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-756969 ]
ASF GitHub Bot logged work on HIVE-25416: ----------------------------------------- Author: ASF GitHub Bot Created on: 14/Apr/22 13:46 Start Date: 14/Apr/22 13:46 Worklog Time Spent: 10m Work Description: nrg4878 commented on code in PR #2555: URL: https://github.com/apache/hive/pull/2555#discussion_r850462162 ########## pom.xml: ########## @@ -108,10 +108,10 @@ <avro.version>1.8.2</avro.version> <bcprov-jdk15on.version>1.64</bcprov-jdk15on.version> <calcite.version>1.25.0</calcite.version> - <datanucleus-api-jdo.version>5.2.4</datanucleus-api-jdo.version> - <datanucleus-core.version>5.2.4</datanucleus-core.version> + <datanucleus-api-jdo.version>5.2.6</datanucleus-api-jdo.version> Review Comment: Thanks @zzzzming95 for addressing the issue. Issue Time Tracking ------------------- Worklog Id: (was: 756969) Time Spent: 1h 50m (was: 1h 40m) > Hive metastore memory leak because datanucleus-api-jdo bug > ---------------------------------------------------------- > > Key: HIVE-25416 > URL: https://issues.apache.org/jira/browse/HIVE-25416 > Project: Hive > Issue Type: Bug > Components: Standalone Metastore > Affects Versions: 3.1.2 > Reporter: shezm > Assignee: shezm > Priority: Major > Labels: pull-request-available > Fix For: 3.1.3 > > Attachments: leak.jpg > > Time Spent: 1h 50m > Remaining Estimate: 0h > > 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 failures ArrayList 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.20.1#820001)