[mayaa-user:1024] mayaaのメモリリークにつきまして

Hara Hara [E-MAIL ADDRESS DELETED]
2014年 4月 23日 (水) 00:21:48 JST


お世話になっております。 石川と申します。

Tomcat7+JDK6で稼働中のアプリで、スレッドダンプを取った時に下記のログが
出力されます。

"http-bio-8083-exec-5" daemon prio=10 tid=0x00007f035c0d4800 nid=0x6ecb runnable [0x00007f039cc1a000]
   java.lang.Thread.State: RUNNABLE
    at java.util.HashMap.getEntry(HashMap.java:364)
    at java.util.HashMap.containsKey(HashMap.java:352)
    at org.seasar.mayaa.impl.cycle.script.rhino.PageAttributeScope.has(PageAttributeScope.java:83)
    at org.seasar.mayaa.impl.cycle.script.rhino.PageAttributeScope.findScope(PageAttributeScope.java:140)
    at org.seasar.mayaa.impl.cycle.script.rhino.PageAttributeScope.hasAttribute(PageAttributeScope.java:148)
    at org.seasar.mayaa.impl.cycle.CycleUtil.findStandardAttributeScope(CycleUtil.java:149)
    at org.seasar.mayaa.impl.cycle.script.rhino.NativeServiceCycle.get(NativeServiceCycle.java:75)
    at org.mozilla.javascript.ScriptableObject.getProperty(ScriptableObject.java:1617)
    at org.mozilla.javascript.ScriptRuntime.nameOrFunction(ScriptRuntime.java:1746)
    at org.mozilla.javascript.ScriptRuntime.name(ScriptRuntime.java:1697)
    at org.mozilla.javascript.gen.c83128._c0(☆☆☆.mayaa#attribute:83)
    at org.mozilla.javascript.gen.c83128.call(☆☆☆.mayaa#attribute)
    at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:398)
    at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3065)
    at org.mozilla.javascript.gen.c83128.call(☆☆☆.mayaa#attribute)
    at org.mozilla.javascript.gen.c83128.exec(☆☆☆.mayaa#attribute)
        at org.seasar.mayaa.impl.cycle.script.rhino.TextCompiledScriptImpl.normalExecute(TextCompiledScriptImpl.java:126)
    at org.seasar.mayaa.impl.cycle.script.rhino.TextCompiledScriptImpl.execute(TextCompiledScriptImpl.java:166)
    at org.seasar.mayaa.impl.cycle.script.ComplexScript.execute(ComplexScript.java:55)
    at org.seasar.mayaa.impl.engine.processor.AttributeProcessor$ScriptWrapper.execute(AttributeProcessor.java:279)
    at org.seasar.mayaa.impl.engine.processor.AttributeProcessor$EscapableScript.execute(AttributeProcessor.java:209)
    at org.seasar.mayaa.impl.engine.processor.ElementProcessor.appendAttributeString(ElementProcessor.java:308)
    at org.seasar.mayaa.impl.engine.processor.ElementProcessor.writePart2(ElementProcessor.java:372)
    at org.seasar.mayaa.impl.engine.processor.ElementProcessor.writeStartElement(ElementProcessor.java:431)
    at org.seasar.mayaa.impl.engine.processor.AbstractAttributableProcessor.processEnd(AbstractAttributableProcessor.java:237)
    at org.seasar.mayaa.impl.engine.processor.ElementProcessor.processEnd(ElementProcessor.java:459)
    at org.seasar.mayaa.impl.engine.processor.AbstractAttributableProcessor.doEndProcess(AbstractAttributableProcessor.java:220)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:158)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessorChildren(RenderUtil.java:209)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:147)
    at org.seasar.mayaa.impl.engine.processor.ComponentRenderer.renderTemplate(ComponentRenderer.java:70)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderPage(RenderUtil.java:349)
    at org.seasar.mayaa.impl.engine.processor.InsertProcessor.doStartProcess(InsertProcessor.java:327)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:134)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessorChildren(RenderUtil.java:209)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:147)
    at org.seasar.mayaa.impl.engine.processor.ComponentRenderer.renderTemplate(ComponentRenderer.java:70)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderPage(RenderUtil.java:349)
    at org.seasar.mayaa.impl.engine.processor.InsertProcessor.doStartProcess(InsertProcessor.java:327)

以下は
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessorChildren(RenderUtil.java:209)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:147)
    at org.seasar.mayaa.impl.engine.processor.ComponentRenderer.renderTemplate(ComponentRenderer.java:70)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderPage(RenderUtil.java:349)
    at org.seasar.mayaa.impl.engine.processor.InsertProcessor.doStartProcess(InsertProcessor.java:327)
    at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:134)
の繰り返しが延々と続くのですが、「☆☆☆.mayaa#attribute」の部分は
<m:echo m:id="XXX">
    <m:if test="${aaa == 0 &amp;&amp; bbb == false &amp;&amp; ccc == true}">
            <m:doBody />
        </m:if>
</m:echo>
という処理のm:ifの部分で、「ID=XXX」にあたるものはHTML内に1か所しかありません。
スレッドダンプを取得した時はサーバーのCPUが100%になっていて、上記の状態のスレッドがいくつかありました。

何か改善策はありますでしょうか。
どうぞよろしくお願いいたします。
 		 	   		  
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/mayaa-user/attachments/20140423/63d487e8/attachment.html>


mayaa-user メーリングリストの案内