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

suga [E-MAIL ADDRESS DELETED]
2013年 7月 28日 (日) 16:24:10 JST


sugaです。

情報ありがとうございます。

該当箇所をsynchronizedMapにしたものを1.1.32-SNAPSHOTにしましたので、これで様子を見ていただけますでしょうか。

http://maven.seasar.org/maven2-snapshot/org/seasar/mayaa/mayaa/1.1.32-SNAPSHOT/mayaa-1.1.32-20130728.071539-1.jar

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


2013/7/26 Susumu ISHIGAMI <susumu.ishigami @ gmail.com>:
> いつもお世話になっております。
> 石上です。
>
> 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 mailing list
> mayaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/mayaa-user


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