[ https://issues.apache.org/jira/browse/ARTEMIS-4206?focusedWorklogId=853535&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-853535 ]
ASF GitHub Bot logged work on ARTEMIS-4206: ------------------------------------------- Author: ASF GitHub Bot Created on: 28/Mar/23 23:55 Start Date: 28/Mar/23 23:55 Worklog Time Spent: 10m Work Description: clebertsuconic commented on code in PR #4418: URL: https://github.com/apache/activemq-artemis/pull/4418#discussion_r1151264320 ########## artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/RefCountMessage.java: ########## @@ -49,6 +76,28 @@ public int getDurableCount() { return DURABLE_REF_COUNT_UPDATER.get(this); } + /** Sub classes may mark fired=true when they were explicitly called. + * E.g large message removed the file upon cancellation */ + protected void markFired() { + fired = true; + if (firedAtomic != null) { + firedAtomic.set(true); + } + } + + public RefCountMessage() { + if (DEBUG_REF_COUNT) { + AtomicBoolean refFired = this.firedAtomic; + List<Exception> crumbs = debugCrumbs; + crumbs.add(new Exception("new Instance")); + String clazz = this.getClass().getName(); + // notice you can't have a direct reference on the LargeMessage Itself, + // Otherwise you would get a leak from itself + // RefCountMessageLeakTest is validating this scenario + CLEANER.register(this, () -> debug(clazz, refFired, crumbs)); Review Comment: I actually amended this with a State Object. ########## artemis-core-client/src/main/java/org/apache/activemq/artemis/api/core/Test.java: ########## Review Comment: removed... it was a mistake. Issue Time Tracking ------------------- Worklog Id: (was: 853535) Time Spent: 40m (was: 0.5h) > Unreferenced AMQP Large Messages are not removed > ------------------------------------------------ > > Key: ARTEMIS-4206 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4206 > Project: ActiveMQ Artemis > Issue Type: Bug > Reporter: Clebert Suconic > Assignee: Clebert Suconic > Priority: Major > Fix For: 2.29.0 > > Time Spent: 40m > Remaining Estimate: 0h > > Say you crashed the server after the ack, and before the file.remove, and the > journal. record removal. > The AMQP Large Message may not be removed right away, requiring a restart of > the broker. > At this point this is really caused by ARTEMIS-4193 and only affected 2.29.0 > and no previous versions -- This message was sent by Atlassian Jira (v8.20.10#820010)