You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Chetan Mehrotra (JIRA)" <ji...@apache.org> on 2015/10/06 07:06:26 UTC

[jira] [Created] (OAK-3476) Memory leak caused by using marker names based on non static session id

Chetan Mehrotra created OAK-3476:
------------------------------------

             Summary: Memory leak caused by using marker names based on non static session id
                 Key: OAK-3476
                 URL: https://issues.apache.org/jira/browse/OAK-3476
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: core
            Reporter: Chetan Mehrotra
            Assignee: Chetan Mehrotra
            Priority: Minor
             Fix For: 1.3.8, 1.0.22, 1.2.8


{{SessionDelegate}} creates marker based on session id. As session id is variable such markers can get accumulated over time resulting in memory leak [1]

{code}
 private static <T> void logOperationDetails(ContentSession session, SessionOperation<T> ops) {
        if (readOperationLogger.isTraceEnabled()
                || writeOperationLogger.isTraceEnabled()
                || auditLogger.isDebugEnabled()) {
            Marker sessionMarker = MarkerFactory.getMarker(session.toString());
            Logger log = ops.isUpdate() ? writeOperationLogger : readOperationLogger;
            log.trace(sessionMarker, "[{}] {}", session, ops);
{code}

*Workaround*

Untill we fix it in code user should just set log level to info for following loggers
* org.apache.jackrabbit.oak.audit
* org.apache.jackrabbit.oak.jcr.operations.reads

[1] http://stackoverflow.com/q/31524084/1035417



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