<i18n dev> RFR [13] 8227919: 8213232 causes crashes on solaris sparc64

Ichiroh Takiguchi takiguc at linux.vnet.ibm.com
Fri Jul 26 12:53:49 UTC 2019


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 i18n-dev mailing list