[mayaa-user:981] Mayaa内部でWeakHashMapのコンカレントの不具合と思われる現象が発生しました

Susumu ISHIGAMI [E-MAIL ADDRESS DELETED]
2013年 7月 26日 (金) 20:43:16 JST


いつもお世話になっております。
石上です。

Mayaaを利用させていただいている自社のサービスで
CPU使用率が高騰したためスレッドダンプを解析したところ
下記のスタックトレースを3件取得致しました。

SpecificationUtil内で、WeakHashMapを使用している箇所で、
複数スレッドがコンフリクトし、無限ループが発生していたのではないかと思われます。
パフォーマンスに影響すると思われますが、
WeakHashMapをsynchronizedMapでラップされることで解消できるものと思われます。

ご確認とご対応のご検討のほどよろしくお願い致します。


at java.util.WeakHashMap.get(WeakHashMap.java:347)
at org.seasar.mayaa.impl.engine.specification.SpecificationUtil$EventScriptEnvironment.getEventScripts(SpecificationUtil.java:313)
at org.seasar.mayaa.impl.engine.specification.SpecificationUtil$EventScriptEnvironment.isCached(SpecificationUtil.java:321)
at org.seasar.mayaa.impl.engine.specification.SpecificationUtil.execEvent(SpecificationUtil.java:214)
at org.seasar.mayaa.impl.engine.RenderUtil.renderPage(RenderUtil.java:332)
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.RenderUtil.renderTemplateProcessorChildren(RenderUtil.java:209)
at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:147)
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.RenderUtil.renderTemplateProcessorChildren(RenderUtil.java:209)
at org.seasar.mayaa.impl.engine.RenderUtil.renderTemplateProcessor(RenderUtil.java:147)
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.RenderUtil.renderProcessorTree(RenderUtil.java:264)
at org.seasar.mayaa.impl.engine.TemplateImpl.doTemplateRender(TemplateImpl.java:201)
at org.seasar.mayaa.impl.engine.PageImpl.renderTemplate(PageImpl.java:241)
at org.seasar.mayaa.impl.engine.RenderUtil.renderPage(RenderUtil.java:349)
at 独自PageImpl.doPageRender(独自コード)
at org.seasar.mayaa.impl.engine.EngineImpl.doPageService(EngineImpl.java:373)
at org.seasar.mayaa.impl.engine.EngineImpl.doService(EngineImpl.java:481)
at org.seasar.mayaa.impl.MayaaServlet.doService(MayaaServlet.java:107)
at org.seasar.mayaa.impl.MayaaServlet.doGet(MayaaServlet.java:90)
〜省略〜

-- 
Susumu ISHIGAMI
susumu.ishigami @ gmail.com


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