[
https://issues.apache.org/jira/browse/CASSANDRA-19457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17835064#comment-17835064
]
Bret McGuire commented on CASSANDRA-19457:
------------------------------------------
I just tested this (using the Repro case above) with the following
configurations:
MIcrometer, MicroProfile and default metrics X 4.18.0 and 4.18.1-SNAPSHOT
containing the fix from [~janesiyaohe]
I observed the leak in both the Micrometer and MicroProfile case using 4.18.0.
In all other cases the leak wasn't observed. This indicates that Jane's fix
appears to address Micrometer and MicroProfile and that the default case did
not have an issue.
> Object reference in Micrometer metrics prevent GC from reclaiming Session
> instances
> -----------------------------------------------------------------------------------
>
> Key: CASSANDRA-19457
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19457
> Project: Cassandra
> Issue Type: Bug
> Components: Client/java-driver
> Reporter: Jane He
> Assignee: Jane He
> Priority: Normal
> Attachments: Repro-1.java, Repro.java, Screenshot 2024-03-06 at
> 2.07.01 PM.png, Screenshot 2024-03-06 at 2.07.13 PM.png, build-1.gradle,
> build.gradle
>
> Time Spent: 3h 10m
> Remaining Estimate: 0h
>
> There is a memory leak of previous closed {{{}DefaultSession{}}}s. It can be
> reproduced by this:
> {code:java}
> public static void main(String[] args) throws InterruptedException {
> Semaphore sema = new Semaphore(20);
> for (int i = 0; i < 10000; i++) {
> new Thread(() -> {
> try {
> sema.acquire();
> try(CqlSession session = CqlSession.builder()
>
> .withCloudSecureConnectBundle(Paths.get("bundle.zip"))
> .withAuthCredentials("token", "<some token here>")
> .build()) {
> // Do stuff
> }
> } catch (Exception e) {
> System.out.println(e);
> } finally {
> sema.release();
> }
> }).start();
> }
> }{code}
> On initial investigation, it seems like
> {{MicrometerMetricUpdater.initializeGauge()}} uses
> {{{}Gauge.{}}}{{{}_builder()_{}}} _using_ {{_Supplier_}} _._ This creates a
> strong reference that is causing the issue.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]