cloudfoundry / cloudfoundry/cf-java-client
Memory leak by using the client
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 334
- Forks
- 319
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Hello, our service used this client for a long time and we didn't have any problems. We were using Java 11 but recently we migrated to Java 17. With that our problems started. Under a lot of load our services keeps crashing due to full memory. While I was doing investigation, I ssh-ed to the service and using jcmd i saw what was going on in the memory. These are classes that are loaded and not cleaned afterwards which lead to the memory leak. The number is the count of classes that are loaded. These results were taken when the service wasn't under a lot of load. During it's peak they become even higher.
761809 io.micrometer.core.instrument.ImmutableTag
409768 io.micrometer.core.instrument.Meter$Id
202341 io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueue
86861 io.micrometer.core.instrument.distribution.DistributionStatisticConfig
86857 reactor.netty.channel.MeterKey
86958. [Lio.micrometer.core.instrument.Tag;
52797 io.micrometer.core.instrument.composite.CompositeTimer
86958 io.micrometer.core.instrument.Tags
We are using 5.12.2.RELEASE. We tried also 5.12.1.RELEASE but nothing changed. I also tried to change the reactor-netty version. I tried with 1.1.21 and also 1.0.*. The result is still the same. Also tried swithing the mecrometer version but the result is the same.
Here is a link for our cf client wrapper that we are using. Here are some calls that we are using: link
Also here are classes that we are using to fetch tokens: link
Do you know where the problem could be. Thanks in advance!
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, src/main/java/com/sap/cloudfoundry/client/facade/rest/CloudControllerRestClientImpl.java und die Klassen unter src/main/java/com/sap/cloudfoundry/client/facade/oauth2 zu überprüfen. Vergleiche die gemeldeten Klassenanzahlen unter Java 11 und Java 17 sowie die aufgeführten Abhängigkeitsversionen mit jcmd unter repräsentativer Last. Als erledigt gilt die Aufgabe, wenn die beibehaltenen Objekte identifiziert und nachgewiesen wurde, dass das Speicherwachstum nicht mehr auftritt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- api, backend
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 30/100