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

Susumu ISHIGAMI [E-MAIL ADDRESS DELETED]
2013年 8月 3日 (土) 15:31:51 JST


石上です。

こちらでベンチマークを行った結果、以前との差は見受けられませんでした。
詳細を公開できる情報ではありませんが、ご参考までに。
また運用時に何かありましたら、可能なことは報告させて頂きます。

2013年7月30日 4:23 Susumu ISHIGAMI <susumu.ishigami @ gmail.com>:
> 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



-- 
Susumu ISHIGAMI
susumu.ishigami @ gmail.com


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