<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Thank you, Sergey!<div class=""><br class=""></div><div class="">Looking for one more "+1â€. Any volunteers?<br class=""><div><br class=""></div><div>Regards,</div><div>Dmitry<br class=""><blockquote type="cite" class=""><div class="">On 17 Aug 2020, at 21:06, Sergey Bylokhov <<a href="mailto:sergey.bylokhov@oracle.com" class="">sergey.bylokhov@oracle.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Looks fine.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">On 17.08.2020 02:32, Dmitry Markov wrote:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">Hi Sergey,<br class="">I have added that information to InvokeInputMethodFunction(). Please find the new webrev here:<span class="Apple-converted-space"> </span><a href="http://cr.openjdk.java.net/~dmarkov/8232114/webrev.01/" class="">http://cr.openjdk.java.net/~dmarkov/8232114/webrev.01/</a><br class="">Regards,<br class="">Dmitry<br class=""><blockquote type="cite" class="">On 15 Aug 2020, at 03:05, Sergey Bylokhov <<a href="mailto:sergey.bylokhov@oracle.com" class="">sergey.bylokhov@oracle.com</a><span class="Apple-converted-space"> </span><<a href="mailto:sergey.bylokhov@oracle.com" class="">mailto:sergey.bylokhov@oracle.com</a>>> wrote:<br class=""><br class="">On 12.08.2020 05:09, Dmitry Markov wrote:<br class=""><blockquote type="cite" class="">TranslateMessage() does not invoke PeekMessage(). In our case TranslateMessage() is called by AWT. IME functionality may call PeekMessage() during TranslateMessage() execution. However that PeekMessage() call is intended for processing non-queued messages, (i.e. the messages send via SendMessage() call).<br class="">I contacted Microsoft regarding this problem and one of their suggestions was to use PostMessage() instead of SendMessage() for IME messages to avoid IME internal data corruption and the crash.<br class="">The proposed fix was tested by the stress test for several weeks and no issues were observed. So I feel quite confident that it eliminates the issue.<br class="">There is no exact message which triggers the crash. Usually the crash is caused by one of the following messages: WM_AWT_ASSOCIATECONTEXT or WM_AWT_SETOPENSTATUS but several times I observed that it was triggered by WM_AWT_DESTROYCONTEXT or WM_AWT_CREATECONTEXT. It looks like almost every IME-related message may cause the crash. I think SendMessage() call should be substituted by PostMessage() for all IME messages.<br class=""></blockquote><br class="">Ok, then please add this(or similar) information to the new method "InvokeInputMethodFunction",<br class="">otherwise it could be removed in the future/replaced back to the sendMessage.<br class=""><br class=""><blockquote type="cite" class="">Regards,<br class="">Dmitry<br class=""><blockquote type="cite" class="">On 12 Aug 2020, at 06:16, Sergey Bylokhov <<a href="mailto:Sergey.Bylokhov@oracle.com" class="">Sergey.Bylokhov@oracle.com</a><span class="Apple-converted-space"> </span><<a href="mailto:Sergey.Bylokhov@oracle.com" class="">mailto:Sergey.Bylokhov@oracle.com</a>>> wrote:<br class=""><br class="">Hi, Dmitry.<br class=""><br class="">On 11.08.2020 01:07, Dmitry Markov wrote:<br class=""><blockquote type="cite" class="">Problem description:<br class="">The root cause of the crash is the lack of synchronisation in imjpapi.dll. In particular when IME messages are processed in the message loop and another message triggered through a SendMessage() call, this clears the buffer context so on further processing the message loop in IME context will point to invalid memory buffer. Microsoft article devoted to this issue: <a href="https://docs.microsoft.com/en-us/troubleshoot/windows/win32/ime-crash-processing-cross-thread-sent-message" class="">https://docs.microsoft.com/en-us/troubleshoot/windows/win32/ime-crash-processing-cross-thread-sent-message</a><br class=""></blockquote><br class="">The documentation above also states that PeekMessage, called by the TranslateMessage when the IME is ON, can proceed the posted messages as well if that true then the current fix does not help.<br class=""><br class=""><blockquote type="cite" class="">Fix:<br class="">Replace SendMessage() with PostMessage() for IME messages and implement event based mechanism to notify the sender that the message processing is completed.<br class=""></blockquote><br class="">What exact message broke the IME, the "WM_AWT_DESTROYCONTEXT"?<br class=""><br class=""><blockquote type="cite" class="">Testing:<br class="">mach5 client tests (jtreg headful, jck, etc.) are green.<br class="">Regards,<br class="">Dmitry<br class=""></blockquote><br class=""><br class="">--<br class="">Best regards, Sergey.<br class=""></blockquote></blockquote><br class=""><br class="">--<br class="">Best regards, Sergey.<br class=""></blockquote></blockquote><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">--<span class="Apple-converted-space"> </span></span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">Best regards, Sergey.</span></div></blockquote></div><br class=""></div></body></html>