<AWT Dev> RFR [13] 8227919: 8213232 causes crashes on solaris sparc64

Philip Race philip.race at oracle.com
Thu Aug 1 00:47:11 UTC 2019


OK I approved it and you are good to push.

-phil.

On 7/31/19, 5:34 PM, Ichiroh Takiguchi wrote:
> Thanks Phil and Vladimir.
>
> I just put fix request into 8227919 [1] against JDK13.
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8227919
>
> Thanks,
> Ichiroh Takiguchi
>
> On 2019-08-01 02:45, Phil Race wrote:
>> Ok, that looks a lot more sane.
>>
>> You (Ichiroh) will need to follow the JDK 13 fix request process here :
>> http://openjdk.java.net/jeps/3#Fix-Request-Process
>>
>> An example of a recent case is 
>> https://bugs.openjdk.java.net/browse/JDK-8217676
>>
>> Also remember you fix this ONLY in JDK 13.
>> The fix will be forwarded synced by integrators here into JDK 14.
>>
>> -phil.
>>
>> On 7/31/19 8:40 AM, Vladimir Kempik wrote:
>>> Hello
>>>
>>> In fact such minimalistic change only affects code generation on 
>>> solaris sparc64
>>>
>>> We have tested such fix on openjdk-11.0.4 with solaris sparc64 and 
>>> it passed tck just fine.
>>>
>>> Vladimir.
>>>
>>>> 31 июля 2019 г., в 16:43, Ichiroh Takiguchi 
>>>> <takiguc at linux.vnet.ibm.com> написал(а):
>>>>
>>>> Hello Phil.
>>>>
>>>> I appreciate your comment.
>>>>
>>>> Just in case, I created another fix.
>>>> It's Vladimir's idea.
>>>>
>>>> Bug:    https://bugs.openjdk.java.net/browse/JDK-8227919
>>>> Change: https://cr.openjdk.java.net/~itakiguchi/8227919/webrev.02/
>>>>
>>>> Just added "defined(__linux__)"
>>>>
>>>> I think it can minimize the side effect for OpenJDK testing.
>>>> I'll open another bugid for Linux s390x issue.
>>>>
>>>> I'm not sure which is the best or better on this situation...
>>>>
>>>> Thanks,
>>>> Ichiroh Takiguchi
>>>>
>>>> On 2019-07-31 05:23, Phil Race wrote:
>>>>> Hi,
>>>>> I've stared at this fix and all this bit shifting inside ifdefs is
>>>>> hard to believe
>>>>> this is the way you have to use XIM.
>>>>> Also JDK 13 testing is already well under way and a lot of the 
>>>>> testing for Linux
>>>>> has already been finished. So *you* are going to have to run (1) 
>>>>> all regression
>>>>> tests on Linux & Solaris and that there are no new failures (2) 
>>>>> JCK on Linux and
>>>>> Solaris and certify it all passes else we could have a DOA release or
>>>>> a release stopper.
>>>>> I think given that, and my observations about the fix I think that 
>>>>> the
>>>>> safe option for JDK 13 is to completely back out 8213232 and try 
>>>>> again
>>>>> for JDK 14.
>>>>> But even then I'm first going to want to see pointers to 
>>>>> documentation
>>>>> for XIM which
>>>>> say why what you are doing is correct.
>>>>> -phil.
>>>>> On 7/30/19 10:02 AM, Ichiroh Takiguchi wrote:
>>>>>> Thanks, Vladimir.
>>>>>> I think it's urgent issue for JDK13.
>>>>>> Another reviewer is required.
>>>>>> And I'd like to obtain a sponsor for this issue.
>>>>>> Thanks,
>>>>>> Ichiroh Takiguchi
>>>>>> On 2019-07-29 21:49, Vladimir Kempik wrote:
>>>>>>> Looks good to me.
>>>>>>> Now need some reviewers to take a look at it.
>>>>>>> Thanks, Vladimir.
>>>>>>>> 29 июля 2019 г., в 15:44, Ichiroh Takiguchi 
>>>>>>>> <TAKIGUC at jp.ibm.com> написал(а):
>>>>>>>> Hello Vladimir.
>>>>>>>> I appreciate your suggestion.
>>>>>>>> And I'm very sorry for bad response.
>>>>>>>> Our mail server for external mailing list is downed in these days.
>>>>>>>> So I'd like to use another email address.
>>>>>>>> Please see following 2 outputs.
>>>>>>>>> $ XMODIFIERS=@im=local ./xim_root
>>>>>>>> ......
>>>>>>>>> ButtonPress:
>>>>>>>>> [1]w=0x2000002
>>>>>>>>> [2]w=0x2000002
>>>>>>>>> [1]state=0x2
>>>>>>>>> [2]state=0x2
>>>>>>>>> $ XMODIFIERS=@im=kinput2 ./xim_root
>>>>>>>> ......
>>>>>>>>> ButtonPress:
>>>>>>>>> [1]w=0x200000200000000
>>>>>>>>> [2]w=0x2000002
>>>>>>>>> [1]state=0x200000000
>>>>>>>>> [2]state=0x2
>>>>>>>> These mean
>>>>>>>> @im=local is used low 32bit on 64bit long <= The data comes 
>>>>>>>> from Xlib
>>>>>>>> @im=kinput2 is used high 32bit on 64bit long <= The data comes 
>>>>>>>> from XIM
>>>>>>>> protocol
>>>>>>>> So following code changes is required on Linux s390x, it was my 
>>>>>>>> mistake.
>>>>>>>> if (w > 0xffffffffUL) w = w >> 32;
>>>>>>>> I created another fix, could you review it ?
>>>>>>>> Bug:    https://bugs.openjdk.java.net/browse/JDK-8227919
>>>>>>>> Change: https://cr.openjdk.java.net/~itakiguchi/8227919/webrev.01/
>>>>>>>> It changes:
>>>>>>>> * 0xffffffffL is changed to 0xffffffffUL
>>>>>>>> * defined(__linux__) is added into defined(_LP64) line
>>>>>>>> Thanks,
>>>>>>>> ------
>>>>>>>> Ichiro Takiguchi
>>>>>>>>     IBM Japan Ltd.
>>>>>>>> "awt-dev" <awt-dev-bounces at openjdk.java.net> wrote on 
>>>>>>>> 2019/07/26 21:59:59:
>>>>>>>>> From: Vladimir Kempik <vkempik at azul.com>
>>>>>>>>> To: Ichiroh Takiguchi <takiguc at linux.vnet.ibm.com>
>>>>>>>>> Cc: "awt-dev at openjdk.java.net" <awt-dev at openjdk.java.net>, "i18n-
>>>>>>>>> dev at openjdk.java.net" <i18n-dev at openjdk.java.net>
>>>>>>>>> Date: 2019/07/26 22:01
>>>>>>>>> Subject: [EXTERNAL] Re: <AWT Dev> RFR [13] 8227919: 8213232 
>>>>>>>>> causes
>>>>>>>>> crashes on solaris sparc64
>>>>>>>>> Sent by: "awt-dev" <awt-dev-bounces at openjdk.java.net>
>>>>>>>>> Hello
>>>>>>>>> what still bothers me is this:
>>>>>>>>> The first Big Endian block:
>>>>>>>>> 1629 #if defined(_LP64) && !defined(_LITTLE_ENDIAN)
>>>>>>>>> 1630         // On 64bit BigEndian,
>>>>>>>>> 1631         // Window value may be stored on high 32bit by
>>>>>>>>> XGetICValues via XIM
>>>>>>>>> 1632         if (w > 0xffffffffL) w = w >> 32;
>>>>>>>>> 1633 #endif
>>>>>>>>> is inside linux&macos block
>>>>>>>>> 1622 #if defined(__linux__) || defined(MACOSX)
>>>>>>>>> however the second Big Endian block is for every platform:
>>>>>>>>> 1698 #if defined(_LP64) && !defined(_LITTLE_ENDIAN)
>>>>>>>>> 1699     // On 64bit BigEndian,
>>>>>>>>> 1700     // XIMPreeditState value may be stored on high 32bit by
>>>>>>>>> XGetICValues via XIM
>>>>>>>>> 1701     if (state > 0xffffffffL) state = state >> 32;
>>>>>>>>> 1702 #endif
>>>>>>>>> I?m not sure if it?s ok or not.
>>>>>>>>> Also, since XIMPreeditState is unsigned 64-bit int, I think we 
>>>>>>>>> need
>>>>>>>>> to compare it against 0xffffffffUL instead of 0xffffffffL
>>>>>>>>> typedef unsigned long int XIMPreeditState;
>>>>>>>>> Thanks, Vladimir
>>>>>>>>> 26 июля 2019 г., в 15:53, Ichiroh Takiguchi 
>>>>>>>>> <takiguc at linux.vnet.ibm.com
>>>>>>>>>> написал(а):
>>>>>>>>> Hello.
>>>>>>>>> Could you review the fix ?
>>>>>>>>> Bug:    https://bugs.openjdk.java.net/browse/JDK-8227919
>>>>>>>>> Change: 
>>>>>>>>> https://cr.openjdk.java.net/~itakiguchi/8227919/webrev.00/
>>>>>>>>> It's crash issue for Solaris SPARC platform.
>>>>>>>>> If possible, please push this fix into 13.
>>>>>>>>> XIMPreditState is changed to unsigned long instead of unsigned 
>>>>>>>>> int
>>>>>>>>> on 64bit Big endian.
>>>>>>>>> It's same as Java8.
>>>>>>>>> I think Solaris SPARC's issue can be fixed by this fix.
>>>>>>>>> Vladimir,
>>>>>>>>> I appreciate your great help.
>>>>>>>>> Thanks,
>>>>>>>>> Ichiroh Takiguchi
>>>>>>>>> IBM Japan, Ltd.
>>>>>>>>> On 2019-07-23 20:00, Vladimir Kempik wrote:
>>>>>>>>> Hello
>>>>>>>>> it still crashes with  "Bus Error"
>>>>>>>>> I guess I may miss something on X server side.
>>>>>>>>> Thanks, Vladimir.
>>>>>>>>> 22 июля 2019 г., в 21:08, Ichiroh Takiguchi 
>>>>>>>>> <takiguc at linux.vnet.ibm.com
>>>>>>>>>> написал(а):
>>>>>>>>> Hello Vladimir.
>>>>>>>>> I really appreciate your help.
>>>>>>>>> "XMODIFIERS=@im=local" is related Multi key Compose feature [1]
>>>>>>>>> One of document said "XMODIFIERS=@im=none" [2]
>>>>>>>>> Could you try "XMODIFIERS=@im=none" ?
>>>>>>>>> [1] 
>>>>>>>>> https://www.x.org/releases/current/doc/man/man5/Compose.5.xhtml <
>>>>>>>>> https://www.x.org/releases/current/doc/man/man5/Compose.5.xhtml>
>>>>>>>>> [2] https://fedoraproject.org/wiki/I18N/InputMethods <https://
>>>>>>>>> fedoraproject.org/wiki/I18N/InputMethods>
>>>>>>>>> Thanks,
>>>>>>>>> Ichiroh Takiguchi
>>>>>>>>> On 2019-07-22 23:58, Vladimir Kempik wrote:
>>>>>>>>> Hello
>>>>>>>>> I?m getting Bus Error on startup with
>>>>>>>>> XMODIFIERS=@im=local ./xim_root
>>>>>>>>> nothing yet in log at that moment.
>>>>>>>>> Thanks, Vladimir
>>>>>>>>> 22 июля 2019 г., в 15:12, Ichiroh Takiguchi 
>>>>>>>>> <takiguc at linux.vnet.ibm.com
>>>>>>>>>> написал(а):
>>>>>>>>> Hello Vladimir.
>>>>>>>>> I appreciate your reply.
>>>>>>>>> I did not expect "[1]w=0x0", it means xim_root could not receive
>>>>>>>>> focus window via XIC.
>>>>>>>>> I checked ibus XIM server on Linux s390x platform again, it also
>>>>>>>>> returned "[1]w=0" ...
>>>>>>>>> I was confused.
>>>>>>>>> I'd like to add new instruction
>>>>>>>>> 5. Run xim_root with XMODIFIERS=@im=local environment variable on
>>>>>>>>> desktop, like
>>>>>>>>> $ XMODIFIERS=@im=local ./xim_root
>>>>>>>>> 6. Move input focus to XIM demo window
>>>>>>>>> 7. Press Ctrl key and Press Right mouse button
>>>>>>>>> I tested xim_root on Linux s390x platform.
>>>>>>>>> $ XMODIFIERS=@im=ibus ./xim_root
>>>>>>>>> fevent = 0x3
>>>>>>>>> topwindow = 0x1e00001, window = 0x1e00002
>>>>>>>>> ClientMessage is received
>>>>>>>>> WM_TAKE_FOCUS is received, window=0x1e00002, timestamp=1470262945
>>>>>>>>> XSetInputFocus() is called
>>>>>>>>> FocusOut: window=0x1e00002(Internal Window)
>>>>>>>>> XUnsetICFocus
>>>>>>>>> FocusOut: window=0x1e00001(XIM demo - root-im window - 64bit)
>>>>>>>>> FocusIn: window=0x1e00001(XIM demo - root-im window - 64bit)
>>>>>>>>> FocusIn: window=0x1e00002(Internal Window)
>>>>>>>>> XSetICFocus
>>>>>>>>> KeyPress:
>>>>>>>>> ButtonPress:
>>>>>>>>> [1]w=0x0
>>>>>>>>> [2]w=0x0
>>>>>>>>> [1]state=0x0
>>>>>>>>> [2]state=0x0
>>>>>>>>> State: Unknown
>>>>>>>>> ClientMessage is received
>>>>>>>>> I tried it with XMODIFIERS=@im=local
>>>>>>>>> $ XMODIFIERS=@im=local ./xim_root
>>>>>>>>> fevent = 0
>>>>>>>>> topwindow = 0x2000001, window = 0x2000002
>>>>>>>>> ClientMessage is received
>>>>>>>>> WM_TAKE_FOCUS is received, window=0x2000002, timestamp=1470356372
>>>>>>>>> XSetInputFocus() is called
>>>>>>>>> FocusIn: window=0x2000001(XIM demo - root-im window - 64bit)
>>>>>>>>> FocusIn: window=0x2000002(Internal Window)
>>>>>>>>> XSetICFocus
>>>>>>>>> KeyPress:
>>>>>>>>> ButtonPress:
>>>>>>>>> [1]w=0x2000002
>>>>>>>>> [2]w=0x2000002
>>>>>>>>> [1]state=0x2
>>>>>>>>> [2]state=0x2
>>>>>>>>> State: IM Off
>>>>>>>>> ClientMessage is received
>>>>>>>>> I was expected this result.
>>>>>>>>> $ XMODIFIERS=@im=kinput2 ./xim_root
>>>>>>>>> fevent = 0x3
>>>>>>>>> topwindow = 0x2000001, window = 0x2000002
>>>>>>>>> ClientMessage is received
>>>>>>>>> WM_TAKE_FOCUS is received, window=0x2000002, timestamp=1470386128
>>>>>>>>> XSetInputFocus() is called
>>>>>>>>> FocusIn: window=0x2000001(XIM demo - root-im window - 64bit)
>>>>>>>>> FocusIn: window=0x2000002(Internal Window)
>>>>>>>>> XSetICFocus
>>>>>>>>> KeyPress:
>>>>>>>>> ButtonPress:
>>>>>>>>> [1]w=0x200000200000000
>>>>>>>>> [2]w=0x2000002
>>>>>>>>> [1]state=0x200000000
>>>>>>>>> [2]state=0x2
>>>>>>>>> State: IM Off
>>>>>>>>> ClientMessage is received
>>>>>>>>> I'm sorry, it seemed current code did not work on even if Linux
>>>>>>>>> s390x platform.
>>>>>>>>> Thanks,
>>>>>>>>> Ichiroh Takiguchi
>>>>>>>>> On 2019-07-19 23:29, Vladimir Kempik wrote:
>>>>>>>>> Hello
>>>>>>>>> I?m probably missing something about XIM on X side here, using 
>>>>>>>>> ssh
>>>>>>>>> -X from ubuntu(with Xserver) to solaris11 sparc64 machine
>>>>>>>>> the output is
>>>>>>>>> fevent = 0x3
>>>>>>>>> topwindow = 0x3800001, window = 0x3800002
>>>>>>>>> ClientMessage is received
>>>>>>>>> WM_TAKE_FOCUS is received, window=0x3800002, timestamp=3262503
>>>>>>>>> XSetInputFocus() is called
>>>>>>>>> FocusIn: window=0x3800001(XIM demo - root-im window - 64bit)
>>>>>>>>> FocusIn: window=0x3800002(Internal Window)
>>>>>>>>> XSetICFocus
>>>>>>>>> FocusOut: window=0x3800002(Internal Window)
>>>>>>>>> XUnsetICFocus
>>>>>>>>> FocusOut: window=0x3800001(XIM demo - root-im window - 64bit)
>>>>>>>>> ClientMessage is received
>>>>>>>>> WM_TAKE_FOCUS is received, window=0x3800002, timestamp=3267238
>>>>>>>>> XSetInputFocus() is called
>>>>>>>>> ButtonPress:
>>>>>>>>> [1]w=0x0
>>>>>>>>> [2]w=0x0
>>>>>>>>> [1]state=0x0
>>>>>>>>> [2]state=0x0
>>>>>>>>> State: Unknown
>>>>>>>>> FocusIn: window=0x3800001(XIM demo - root-im window - 64bit)
>>>>>>>>> FocusIn: window=0x3800002(Internal Window)
>>>>>>>>> I also had to press left button, not right one.
>>>>>>>>> I think when you initialy created 8213232 you were targeting 
>>>>>>>>> linux
>>>>>>>>> ppc64 BE system in your patch and simply forgot about another 
>>>>>>>>> 64-bit
>>>>>>>>> BE system - solaris sparc64
>>>>>>>>> I would propose this fix for 8227919
>>>>>>>>> --- 
>>>>>>>>> a/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
>>>>>>>>> +++ 
>>>>>>>>> b/src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
>>>>>>>>> @@ -1671,7 +1671,7 @@
>>>>>>>>> {
>>>>>>>>>   X11InputMethodData *pX11IMData = NULL;
>>>>>>>>>   char * ret = NULL;
>>>>>>>>> -#if defined(_LP64) && !defined(_LITTLE_ENDIAN)
>>>>>>>>> +#if defined(__linux__) && defined(_LP64) && 
>>>>>>>>> !defined(_LITTLE_ENDIAN)
>>>>>>>>>   // XIMPreeditState value which is used for XGetICValues must be
>>>>>>>>> 32bit on BigEndian XOrg's xlib
>>>>>>>>>   unsigned int state = XIMPreeditUnKnown;
>>>>>>>>> #else
>>>>>>>>> Such change already allowed to pass our internal tests on solaris
>>>>>>>> sparc64
>>>>>>>>> if you think it?s ok then let me take over and finish with 
>>>>>>>>> 8227919
>>>>>>>>> Thanks, Vladimir
>>>>>>>>> 19 июля 2019 г., в 16:57, Ichiroh Takiguchi
>>>>>>>>> <takiguc at linux.vnet.ibm.com <mailto:takiguc at linux.vnet.ibm.com> <
>>>>>>>>> mailto:takiguc at linux.vnet.ibm.com 
>>>>>>>>> <mailto:takiguc at linux.vnet.ibm.com>><
>>>>>>>>> mailto:takiguc at linux.vnet.ibm.com 
>>>>>>>>> <mailto:takiguc at linux.vnet.ibm.com><
>>>>>>>>> mailto:takiguc at linux.vnet.ibm.com 
>>>>>>>>> <mailto:takiguc at linux.vnet.ibm.com>>>>
>>>>>>>>> написал(а):
>>>>>>>>> Hello.
>>>>>>>>> I need Solaris 64bit SPARC desktop user volunteer for 
>>>>>>>>> jdk-8227919 [1]
>>>>>>>>> Please follow the steps:
>>>>>>>>> 1. Download xim_root.c [2] and compile it on Solaris 64bit SPARC
>>>>>>>>> 2. Run xim_root on desktop
>>>>>>>>> 3. Move input focus to XIM demo window
>>>>>>>>> 4. Press Ctrl key and Press Right mouse button
>>>>>>>>> Please put the output into JDK-8227919 [1] or post it into 
>>>>>>>>> mailing list.
>>>>>>>>> I really appreciate if you are using XIM like IIIMF.
>>>>>>>>> [1] https://bugs.openjdk.java.net/browse/JDK-8227919
>>>>>>>>> [2] https://cr.openjdk.java.net/~itakiguchi/8227919/xim_root.c
>>>>>>>>> Thanks,
>>>>>>>>> Ichiroh Takiguchi
>


More information about the awt-dev mailing list