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

Hara Hara [E-MAIL ADDRESS DELETED]
2014年 4月 24日 (木) 17:19:08 JST


suga様

いつもお世話になっております。
大変申し訳ございません、メモリリークではなく無限ループですね・・・
確認したところ、insertタグでnameを指定していないところがあり、
それがループしていたようです。
お忙しいところお手間と取らせてしまい申し訳ございません。

大変恐縮ですが、もう一点ご教示いただけますでしょうか。
稀にページ表示に30秒ちかくかかることがあり、そういう場合に下記のような状態のスレッドが
幾つか存在しているのですが、これは問題ないでしょうか。

   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.seasar.mayaa.impl.engine.specification.NamespaceImpl.getInstance(NamespaceImpl.java:54)
    - waiting to lock <0x00000000c6fcc808> (a org.seasar.mayaa.impl.util.ReferenceCache)
    at org.seasar.mayaa.impl.engine.specification.NamespaceImpl.copyOf(NamespaceImpl.java:77)

どうぞよろしくお願いいたします。

> Date: Wed, 23 Apr 2014 07:59:12 +0900
> From: ko.suga @ gmail.com
> To: mayaa-user @ ml.seasar.org
> Subject: [mayaa-user:1025] Re:	mayaaのメモリリークにつきまして
> 
> 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 mailing list
> mayaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/mayaa-user
 		 	   		  
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/mayaa-user/attachments/20140424/84cc1414/attachment.html>


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