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

Susumu ISHIGAMI [E-MAIL ADDRESS DELETED]
2013年 7月 30日 (火) 04:23:52 JST


sugaさん
素早いご対応ありがとうございます。

こちらで確認して様子を見てみます。
中立的な条件かどうかは分かりませんが、ベンチマークも実施する予定ですので、影響が見られたら報告します。

2013年7月28日 16:24 suga <ko.suga @ gmail.com>:
> 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 mailing list
> mayaa-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/mayaa-user



-- 
Susumu ISHIGAMI
susumu.ishigami @ gmail.com


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