[OpenJDK 2D-Dev] RFR: 8221741 [AIX] Unexpected X11 bitmap fonts are loaded because of fontconfig.properties
Phil Race
philip.race at oracle.com
Fri Apr 19 18:55:11 UTC 2019
Something must have gone wrong upstream to have this font registered as
a native font.
You should trace back to find out. I suggest to start with this code in
SunFontManager.java,
where I am guessing you don't have the file name for some reason.
protected void registerFontFile(String fontFileName, String[]
nativeNames,
int fontRank, boolean defer) {
// REMIND: case compare depends on platform
if (registeredFontFiles.contains(fontFileName)) {
return;
}
int fontFormat;
if (ttFilter.accept(null, fontFileName)) {
fontFormat = FONTFORMAT_TRUETYPE;
} else if (t1Filter.accept(null, fontFileName)) {
fontFormat = FONTFORMAT_TYPE1;
} else {
fontFormat = FONTFORMAT_NATIVE; /// <<<<< I think you are
getting here, but why ?
}
-phil.
On 4/19/19 5:18 AM, Ichiroh Takiguchi wrote:
> Hello Phil.
>
> I'm using standard OpenJDK JDK13 b13 for AIX, like:
> openjdk version "13-internal" 2019-09-17
> OpenJDK Runtime Environment (build 13-internal+0-jdk13-13)
> OpenJDK 64-Bit Server VM (build 13-internal+0-jdk13-13, mixed mode)
> (Compiled it by myself)
>
> To see stack trace, I tried following instruction:
> 1. Login to AIX box from another machine
> 2. Login to AIX box from AIX CDE on local AIX box Japanese locale
> (Ja_JP) or C locale
> 3. Open terminal, like dtterm on local AIX box
> 4. Start SwingSet2 demo program
> 5. Check java's process id
> 6. Move mouse cursor to 2nd icon (ToolTipDemo) from right side
> 7. Move mouse cursor on cow image to display ToolTip
> 8. Keep moving the mouse cursor slowly, mouse cursor may be stopped
> (I said this situation was "frozen".)
> 9. After Xserver was frozen, execute "kill -3" with java process id
> 10. Then stack trace is displayed
>
> "AWT-EventQueue-0" #14 prio=6 os_prio=57 cpu=1362.57ms elapsed=31.90s
> tid=0x0000000113f44800 nid=0x1516 runnable [0x0000000114159000]
> java.lang.Thread.State: RUNNABLE
> at sun.font.NativeFont.countGlyphs(java.desktop at 13-internal/Native
> Method)
> at
> sun.font.NativeFont.getNumGlyphs(java.desktop at 13-internal/NativeFont.java:312)
> at
> sun.font.NativeFont.<init>(java.desktop at 13-internal/NativeFont.java:90)
> at
> sun.font.SunFontManager.registerFontFile(java.desktop at 13-internal/SunFontManager.java:1023)
> at
> sun.font.SunFontManager.initialiseDeferredFont(java.desktop at 13-internal/SunFontManager.java:946)
> ...
>
> I could recreate same issue on AdoptOpenJDK JDK12 with Hotspot JVM.
>
> Thanks,
> Ichiroh Takiguchi
>
> On 2019-04-19 05:20, Phil Race wrote:
>> On startup ?
>> What is the Java stack trace that gets you into that call ?
>> Is it this with any modified IBM code, or pure OpenJDK ?
>>
>> -phil.
>>
>> On 4/17/19 11:55 PM, Ichiroh Takiguchi wrote:
>>> Hello Phil.
>>>
>>> I appreciate your reply.
>>> I put problem analysis information in JDK-8221741 [1].
>>>
>>> The issue is AIX's Xserver was frozen about 25 secs on my local AIX
>>> box.
>>> According to my problem analysis,
>>> In this case, Java tried to load large 11 X11 bitmap fonts via
>>> XLoadQueryFont() on Xlib.
>>> The situation can emulate by "xlsfonts -ll" command, like:
>>>
>>> $ time xlsfonts -ll -fn
>>> "-monotype-sansmonowt-medium-r-normal--*-80-72-72-*-*-ucs2.cjk_japan-0"
>>> ...
>>> real 0m2.07s
>>> user 0m0.00s
>>> sys 0m0.00s
>>>
>>> One of solution is, Unix's fontconfig.properties can support
>>> TrueType/Type1 font name format. [2]
>>>
>>> Anyway,
>>> I don't know the reason why X11 bitmap font is required for logical
>>> font.
>>> (I don't know how to use X11 bitmap font for physical font.
>>> I could not see X11 bitmap font name via
>>> GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames().)
>>> I just want to fix Xserver frozen issue.
>>> I appreciate your advice.
>>> (Other solutions are welcome)
>>>
>>> [1] https://bugs.openjdk.java.net/browse/JDK-8221741
>>> [2] https://cr.openjdk.java.net/~itakiguchi/8221741/webrev.00/
>>>
>>> Thanks,
>>> Ichiroh Takiguchi
>>> IBM Japan, Ltd.
>>>
>>> On 2019-04-04 01:09, Philip Race wrote:
>>>> On 4/2/19, 9:27 AM, Ichiroh Takiguchi wrote:
>>>>> Hello.
>>>>> (I am sorry to post it again. Previously, I posted the wrong
>>>>> mailing list.)
>>>>>
>>>>> Could you review the fix ?
>>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8221741
>>>>> Change: https://cr.openjdk.java.net/~itakiguchi/8221741/webrev.00/
>>>>>
>>>>> I'd like to obtain a sponsor for this issue.
>>>>>
>>>>> On AIX platform, fontconfig.properties file is used to pick up
>>>>> proper fonts.
>>>>> TrueType font settings are written by XLFD format on
>>>>> fontconfig.properties file.
>>>>>
>>>>> On current implementation, Java tries to load X11 bitmap fonts
>>>>> even if these are not used.
>>>>
>>>> I think you need to clarify what you mean here.
>>>>
>>>> I'd like you to provide a step by step analysis of what happens and
>>>> what the effect of your proposed change is on AIX *AND* what it might
>>>> mean for other X11 platforms, as I don't have time to reverse
>>>> engineer the
>>>> reasons for the odd-looking change.
>>>> It looks like a hack to short-circuit support your syntax.
>>>> Right now I am saying no to this.
>>>>
>>>>> This font load work is almost name as "xlsfonts -ll".
>>>>> It spends many CPU time and memories.
>>>>>
>>>>> Just font name format should be supported.
>>>>
>>>> Not clear enough for me.
>>>>
>>>> -phil.
>>>>>
>>>>> To SAP representative,
>>>>> I have a question about copyright year on
>>>>> make/data/fontconfig/aix.fontconfig.properties.
>>>>> Please let me know how I should write down copyright year.
>>>>>
>>>>> Thanks,
>>>>> Ichiroh Takiguchi
>>>>> IBM Japan, Ltd.
>>>>>
>>>
>
More information about the ppc-aix-port-dev
mailing list