"mtxrun --script fonts --reload" hangs when loading "LXGWNeoXiHei.ttf"

Max Chernoff via ntg-context <[email protected]>
Newsgroups gmane.comp.tex.context
Message-ID <[email protected]>
Hi Hans,

Someone reported the following issue to the TeX Live list earlier today:

    From: Rolf Niepraschk <[email protected]>
    To: TeX Live <[email protected]>
    Subject: Cannot generate "font names database"
    Date: 2026-03-24 04:51:34 PM
    Message-Id: <[email protected]>

    I installed TeX Live 2026 (schema full). The first lualatex test failed
    to complete the generation of the "Font names database". The subsequent
    command

    luaotfload-tool --update --force -vvv

    stalled (using 100% CPU) at

    ...
    luaotfload | db : Loading font
    /usr/local/texlive/2026/texmf-dist/fonts/opentype/public/helmholtz-ellis-ji-notation/HEJI2Text.otfluaotfload
    > db : Invalid names table of font HEJI2Text.otf, using dummies.
    Reported: fontname="nil", fullname="nil".
    luaotfload | db : Loading font
    /usr/local/texlive/2026/texmf-dist/fonts/truetype/public/lxgw-fonts/LXGWNeoXiHei.ttf

    After temporarily removing the font files with

    mv /usr/local/texlive/2026/texmf-dist/fonts/truetype/public/lxgw-fonts /tmp/

    was the problem resolved. I'm working under Linux (32GB RAM).

I'm seeing the exact same results in ConTeXt too:

    $ mtxrun --script fonts --reload
    fonts           | names | warnings are disabled (tracker 'fonts.warnings')
    fonts           | names | identifying tree font files with suffix 'otf'
    fonts           | names | scanning path '/home/max/texmf' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/texmf-var' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/../texmf-local' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/texmf-dist' for otf files
    fonts           | names | 2302 otf files checked, 2302 okay
    fonts           | names | identifying tree font files with suffix 'OTF'
    fonts           | names | scanning path '/home/max/texmf' for OTF files
    fonts           | names | 0 OTF files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/texmf-var' for OTF files
    fonts           | names | 0 OTF files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/../texmf-local' for OTF files
    fonts           | names | 0 OTF files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/texmf-dist' for OTF files
    fonts           | names | 2302 OTF files checked, 2302 okay
    fonts           | names | 4604 tree files identified, 10 skipped, 10 duplicates, 4594 hash entries added, runtime 1.775 seconds
    fonts           | names | identifying tree font files with suffix 'ttf'
    fonts           | names | scanning path '/home/max/texmf' for ttf files
    fonts           | names | 0 ttf files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/texmf-var' for ttf files
    fonts           | names | 0 ttf files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/../texmf-local' for ttf files
    fonts           | names | 0 ttf files checked, 0 okay
    fonts           | names | scanning path '/usr/local/texlive/2026/texmf-dist' for ttf files
    otf reader      | bad 'vmtx' table in file 'LXGWNeoXiHei.ttf'

I'm also able to reproduce this with the Standalone Distribution:

    $ wget 'https://mirrors.ctan.org/fonts/lxgw-fonts/LXGWNeoXiHei.ttf'
    $ export OSFONTDIR=.
    $ mtxrun --script fonts --reload
    fonts           | names | warnings are disabled (tracker 'fonts.warnings')
    fonts           | names | identifying tree font files with suffix 'otf'
    fonts           | names | scanning path '/home/max/texmf' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/opt/context/tex/texmf-project' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/opt/context/tex/texmf-fonts' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/opt/context/tex/texmf-local' for otf files
    fonts           | names | 0 otf files checked, 0 okay
    fonts           | names | scanning path '/opt/context/tex/texmf-modules' for otf files
    fonts           | names | 12 otf files checked, 12 okay
    [...]
    fonts           | names | identifying system font files with suffix 'otf'
    fonts           | names | variable 'OSFONTDIR' specifies path '.'
    fonts           | names | globbing path './**.otf'
    fonts           | names | identifying system font files with suffix 'OTF'
    fonts           | names | globbing path './**.OTF'
    fonts           | names | 0 system files identified, 0 skipped, 0 duplicates, 0 hash entries added, runtime 0.000 seconds
    fonts           | names | identifying system font files with suffix 'ttf'
    fonts           | names | globbing path './**.ttf'
    otf reader      | bad 'vmtx' table in file 'LXGWNeoXiHei.ttf'

Even if it's the font itself that's buggy/broken, I'd argue that ConTeXt
shouldn't enter an infinite loop when trying to load it.

Thanks,
-- Max
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : [email protected] / https://mailman.ntg.nl/mailman3/lists/ntg-context.ntg.nl
webpage  : https://www.pragma-ade.nl / https://context.aanhet.net (mirror)
archive  : https://github.com/contextgarden/context
wiki     : https://wiki.contextgarden.net
___________________________________________________________________________________
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.