[ https://issues.apache.org/jira/browse/OPENJPA-2814?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17100763#comment-17100763 ]
Gregory JEVARDAT edited comment on OPENJPA-2814 at 5/6/20, 12:39 PM: --------------------------------------------------------------------- Ok Thanks, I start Is there any CI solution. the current master is failing with mvn clean install at openjpa-jdbc Test : {code:java} org.apache.openjpa.jdbc.meta.TestMappingDefaultsImpl.testPopulateWithLongColumnNames(TestMappingDefaultsImpl.java:55) <failure message="column names are conflicted : LONGNAMELONGNAMELONGNAMELONGNA" type="java.lang.AssertionError"><![CDATA[java.lang.AssertionError: column names are conflicted : LONGNAMELONGNAMELONGNAMELONGNA {code} was (Author: gregjdf): Ok Thanks, I start Is there any CI solution. the current master is failing with mvn clean install at openjpa-jdbc > Memory Leak in ForeignKey class > ------------------------------- > > Key: OPENJPA-2814 > URL: https://issues.apache.org/jira/browse/OPENJPA-2814 > Project: OpenJPA > Issue Type: Bug > Components: jdbc > Affects Versions: 3.0.0 > Reporter: Gregory JEVARDAT > Priority: Major > > I analyzed and solved a memory leak in the ForeignKey class. > > Context is that I run a batch application running as a service and reading > billions of entities. > I realised that ForeignKey classes were accumulating in the heap after each > query reading these entities and were never garbaged leading after few > hundreds of millions of read and hours of processing to full heap. > After profiling and debugging the leak is coming from the > ForeignKey.join(Column local,Column toPOK) method, more precisely in the line > 574 were > local.addConstraint(this) is performed. > Here the ForeignKeys are added to a Set in the Column class. > Issue is that the ForeignKey has no equals and hashcode implemented resulting > in what it seems to me logically equivalent ForeignKeys added and > accumulating indefinitely in the map of Columns. Indeed, for whatever reason > a new ForeignKey class is created each time (which also sounds weird) at > RelationFieldStrategy.createTranslatingForeignKey method > Solution: after implementing equals and hashcode in ForeignKey and Constraint > class, the application works smoothly and the memory leak is gone. Maybe it > should be done for DBIdentifier also ? > > -- This message was sent by Atlassian Jira (v8.3.4#803005)