Description
From @mafa73 on February 4, 2019 19:10
I've upgraded to Spring Boot 2.1.2 and Spring Cloud Stream - Cloud dependencies Greenwich.RELEASE. After upgrading my application run for a few hours in production until it got an OutOfMemoryException. Didn't change any code, just the dependencies. When reverting to Spring Boot 2.0.8 and Spring Cloud Stream - Finchley.SR2 the memory leak has not occurred.
The application consumes from 8 Kafka topics and produces to one topic using the Kafka binder.
Dependency management:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.2.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
Runtime is Java 11 - OpenJDK
Part of application.yml
spring:
cloud:
stream:
kafka:
binder:
brokers: kafka-server:port
bindings:
created-material-in:
destination: created-material-event
created-program-in:
destination: created-program-event
updated-material-in:
destination: updated-material-event
updated-program-in:
destination: updated-program-event
deleted-material-in:
destination: deleted-material-event
deleted-program-in:
destination: deleted-program-event
process-schedule-in:
destination: schedule-event
remotetask-in:
destination: task-in
remotetask-out:
destination: task-out
management:
metrics:
export:
influx:
enabled: True
Apart from the memory leak the application run without problems, no errors detected.
Made a heap dump and analysed it in YourKit. Most of the memory is populated with a Spring Integration Metric - org.springframework.integration.support.management.micrometer.MicrometerMetricsCaptor$MicroTimer. Can the error be the the MicroTimer has no equals or hashCode methods?
Attached are two files from YourKit. The first is the objects consuming most of the memory.
And the second file with one of the ConcurrentHashMap$Node[] instance opened.
Copied from original issue: spring-cloud/spring-cloud-stream#1599