<AWT Dev> RFR [13] 8227919: 8213232 causes crashes on solaris sparc64
Ichiroh Takiguchi
takiguc at linux.vnet.ibm.com
Wed Jul 31 13:43:22 UTC 2019
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