[ 
https://issues.apache.org/jira/browse/OAK-3109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14627986#comment-14627986
 ] 

Michael Dürig commented on OAK-3109:
------------------------------------

Many of the {{SegmentTracker}} instances are referenced from 
{{SegmentLoaderHandler}}, which is registered to the channel pipeline as a 
channel handler. I don't know who would be responsible to eventually clean this 
up. However explicitly removing the handler again in {{close()}} fixes the OOME:

{code}
--- 
oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java
  (date 1436962414000)
+++ 
oak-tarmk-standby/src/main/java/org/apache/jackrabbit/oak/plugins/segment/standby/client/StandbyClientHandler.java
  (revision )
@@ -82,6 +82,7 @@
         ctx.flush();
     }
 
+    SegmentLoaderHandler h2;
     synchronized void setHead(RecordId head) {
 
         if (store.getHead().getRecordId().equals(head)) {
@@ -97,7 +98,7 @@
         ctx.pipeline().addLast(new ReplyDecoder(store));
 
         loaderExecutor = new DefaultEventExecutorGroup(4);
-        SegmentLoaderHandler h2 = new SegmentLoaderHandler(store, head,
+        h2 = new SegmentLoaderHandler(store, head,
                 loaderExecutor, this.observer.getID(), running, readTimeoutMs,
                 autoClean);
         ctx.pipeline().addLast(loaderExecutor, h2);
@@ -115,6 +116,10 @@
 
     @Override
     public void close() {
+        if (h2 != null) {
+            ctx.pipeline().remove(h2);
+            h2 = null;
+        }
         ctx.close();
         if (!executor.isShuttingDown()) {
             executor.shutdownGracefully(1, 2, TimeUnit.SECONDS)
{code}

> OOME in tarkmk standby tests
> ----------------------------
>
>                 Key: OAK-3109
>                 URL: https://issues.apache.org/jira/browse/OAK-3109
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: tarmk-standby
>            Reporter: Michael Dürig
>
> Running the tarmk-standby ITs results in an OOME when running with the new 
> string cache from OAK-3007. Looking at the heap dump I see many 
> {{SegmentTracker}} instances around, which leads me to think that the test 
> setup might have a leak somewhere. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to