Bug 2219623

Summary: hang in java application
Product: Red Hat Enterprise Linux 7 Reporter: Paulo Andrade <pandrade>
Component: ibusAssignee: fujiwara <tfujiwar>
Status: NEW --- QA Contact: QE Internationalization Bugs <qe-i18n-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.9CC: tfujiwar
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Paulo Andrade 2023-07-04 15:46:37 UTC
After debugging a java application that would hang, customer noticed
the only way to get it working again was to restart the desktop.

  Checking a forced java coredump the best guess we had was that it
was related to ibus.

  Searching the web with some keywords we found that the problem appears
to be fixed if with the environment variable:

IBUS_ENABLE_SYNC_MODE=1

  Can you please describe any problems with this setting? At first
it can be assumed that it might run slightly slower, and should be
done only for the java application. Can you confirm it?

  What would be the best way to debug this issue, and not need to
use workaround?

Comment 3 fujiwara 2023-07-05 01:30:01 UTC
I cannot reproduce your issue.
Can you provide a example Java program?

> IBUS_ENABLE_SYNC_MODE=1

It would cause several regressions and the setting won't be changed by default in RHEL 9 or lower.

Comment 12 Paulo Andrade 2023-08-08 13:40:13 UTC
Could not yet reproduce the problem, but user reproduced in a patched version
in the 89th try.

The modified version was changed to not enter full screen mode and run
undecorated, as it was guessed it could be somehow related to:

https://bugs.openjdk.org/browse/JDK-8013581

Also, customer did run this small program from a ssh connection:

"""
#include <stdio.h>
#include <X11/Xlib.h>
int
main(int argc, char *argv[])
{
    Display *display = XOpenDisplay(NULL);
    Window  focus;
    int revert;
    if (display == NULL) {
	fprintf(stderr, "failed to open display\n");
	return 1;
    }
    XGetInputFocus(display, &focus, &revert);
    printf("focus = ");
    if (focus == PointerRoot)
	printf("PointerRoot");
    else if (focus == None)
	printf("None");
    else
	printf("0x%x", focus);
    putchar('\n');
    printf("revert = ");
    switch (revert) {
	case RevertToParent:
	    printf("RevertToParent");
	    break;
	case RevertToPointerRoot:
	    printf("RevertToPointerRoot");
	    break;
	case RevertToNone:
	    printf("RevertToNone");
	    break;
	default:
	    printf("%d\n", revert);
	    break;
    }
    putchar('\n');
    return 0;
}
"""

and run:

$ DISPLAY=:0 ./xtest
$ DISPLAY=:0 xwininfo -all -root
$ DISPLAY=:0 xlsclients -al

The xtest output was:

focus = 0x220001f
revert = RevertToPointerRoot

and the xwininfo relevant block is:

    0xe00021 (has no name): ()  1280x1024+0+0  +0+0
        1 child:
        0x2200007 "Test": ("sun-awt-X11-XFramePeer" "Test")  1280x1024+0+0  +0+0
           2 children:
           0x220001f "FocusProxy": ("Focus-Proxy-Window" "FocusProxy")  1x1+-1+-1  +-1+-1
           0x220001c "Content window": ("sun-awt-X11-XContentWindow" "ScrTimeSet")  1280x1061+0+-37  +0+-37
     0x2200008 "ScrTimeSet": ("Test" "Test")  1x1+1+1  +1+1

Note that the focus is in the "FocusProxy" window, but the interface is
frozen.

I played a bit with the sample java code but could not figure an easy
way to have the java app shown in xlsclients output.

Still, this is the major difference I see from my tests, in xlsclients
output:

Window 0x2000001:
  Machine:  test
  Name:  <unknown type COMPOUND_TEXT (475) or format 8>
  Icon Name:  <unknown type COMPOUND_TEXT (475) or format 8>
  Command:  gnome-software
  Instance/Class:  gnome-software/Gnome-software

and that I believe might be related to the hang.

For extra data of another possible related issue, please see bz#2225954

Do you have some idea about the
"<unknown type COMPOUND_TEXT (475) or format 8>" above?

Comment 13 fujiwara 2023-08-16 10:35:06 UTC
The bug reporters should not set needinfo flags.

Comment 14 fujiwara 2023-08-16 10:42:44 UTC
(In reply to Paulo Andrade from comment #12)
> Could not yet reproduce the problem, but user reproduced in a patched version
> in the 89th try.

Then you may need to investigate the customer site. The issue might be caused by the wrong configurations.

> 
> The modified version was changed to not enter full screen mode and run
> undecorated, as it was guessed it could be somehow related to:
> 
> https://bugs.openjdk.org/browse/JDK-8013581

The Java issue is not my responsible and I'm not sure about it.

> The xtest output was:
> 
> focus = 0x220001f
> revert = RevertToPointerRoot

It should be normal.

> Window 0x2000001:
>   Machine:  test
>   Name:  <unknown type COMPOUND_TEXT (475) or format 8>
>   Icon Name:  <unknown type COMPOUND_TEXT (475) or format 8>
>   Command:  gnome-software
>   Instance/Class:  gnome-software/Gnome-software
> 
> and that I believe might be related to the hang.

Should not be relative with your issue.

> Do you have some idea about the
> "<unknown type COMPOUND_TEXT (475) or format 8>" above?

It should be correct. X sends several types of formats with Unicode, compound-text and  format 8.