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

suga [E-MAIL ADDRESS DELETED]
2014年 4月 23日 (水) 07:59:12 JST


suga です。

まず、subjectにメモリリークとありますが、メモリリークだと判断した
理由は何でしょうか。文面にある情報からでは分かりませんが。

InsertProcessor があるのでどこかで m:insert を使っているようですが、
循環してはいないでしょうか。


--
suga ( ko.suga @ gmail.com )


2014-04-23 0:21 GMT+09:00 Hara Hara <iso_hara @ hotmail.com>:
> お世話になっております。 石川と申します。
>
> 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%になっていて、上記の状態のスレッドがいくつかありました。
>
> 何か改善策はありますでしょうか。
> どうぞよろしくお願いいたします。
>
> _______________________________________________
> mayaa-user mailing list
> mayaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/mayaa-user


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