[ https://issues.apache.org/jira/browse/CASSANDRA-19457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bret McGuire updated CASSANDRA-19457: ------------------------------------- Attachment: Repro.java > 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.java, Screenshot 2024-03-06 at 2.07.01 PM.png, > Screenshot 2024-03-06 at 2.07.13 PM.png > > Time Spent: 2h 40m > 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: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org