fmtutilでのluajittexフォーマット作成エラーについて

fmtutilでのluajittexフォーマット作成エラーについて

- m c の投稿
返信数: 4
H/W: RaspberryPi 400 (ARM 64bit)
OS : RasPi OS Lite (Debian Bullseye) + xfce ・・・ 標準的なラズパイOSではなく,Debian + xfceデスクトップ環境に近づけるよう設定
TeX: TeX Live 2023(Debianパッケージではなく,本家)

本日,上記マシンで tlmgr update --self --all によるアップデートをかけたところ,fmtutilでluajittexのフォーマット作成に失敗したようです.
ログファイル一式(ターミナル画面記録,tlmgr.log及びluajittex.log)を添付しています.

ターミナル画面記録の253行目からは「--strictオプションに起因するエラー」と読み取れるのですが,どう対処すればよろしいでしょうか?

保有する他機(M1 mac,Intel mac,Linux AMD64)では,同時間帯に行ったtlmgrによるアップデートでこのようなエラーは出ておりません.
なお他機では前回tlmgrをかけたタイミングが異なるため,luajittexの実行ファイル luajittex.〇〇 (〇〇はアーキテクチャ)の更新は本日かかっていません.
m c への返信

Re: fmtutilでのluajittexフォーマット作成エラーについて

- m c の投稿
その後行ったことです:
・luajittex.aarch64-linux を一つ前のリビジョン(66547)に戻し,再度 sudo tlmgr update luajittex.aarch64-linux を実行(67024にアップデート)
・結果:同じエラー

当面の対応として,一つ前のリビジョンに戻したままにしておけば良いでしょうか?
その際,フォーマットファイルの再生成は必要でしょうか?(+再生成の手順はどうすれば良いのでしょうか?)

実際の話として,私はluajittexを使っていないので放置でも良いのかもしれませんが...

【追記】他機のluajittexのリビジョン番号は次のとおり
M1 mac:67006
Intel mac:67006
Linux x86-64:66986
m c への返信

Re: fmtutilでのluajittexフォーマット作成エラーについて

- 和田 勇 の投稿

経過報告です。

  • テスト環境

    なんとなく ARM64 環境で発生するように見えたので以下の環境に TeXLive 2023 をネットワークインストールして検証してみました。

      Debian Version arch メモリー 状況
    Parallels 仮想環境 Debian 11.7 aarch64(AMD64) 2G NG
    Chrome OS Debian 11.3 aarch64(AMD64) 2G NG
    VMware 仮想環境 Debian 11.7 x86_64 (AMD64) 2G OK
  • 注目事項

    添付されていた error_logs/tlmgr_terminalscreen.txt の以下のメッセー ジの注目して調査してみました。

    249-warning  (pdf backend): no pages of output.
    250-Transcript written on luajittex.log.
    251:Segmentation fault
    252-fmtutil [ERROR]: running `luajittex -ini   -jobname=luajittex -progname=luajittex luatex.ini /null' return status: 139
    253-fmtutil [ERROR]: returning error due to option --strict
    254-fmtutil [INFO]: log file copied to: /usr/local/texlive/2023/texmf-var/web2c/luajittex/luajittex.log
    
    • 特に注目した点
      • Segmentation fault の原因は?
      • return status: 139
      • luajittex -ini -jobname=luajittex -progname=luajittex luatex.ini
  • 139

    リカーシブコールなどが問題で発生する時のコードのように思いますが、他 の注目点を考慮すると OS のライブラリのように思えるので当面ソースの追 跡は行わない

  • luajittex -ini -jobname=luajittex -progname=luajittex luatex.ini

    上記を ARM 環境で実行すると Segmentation Falut が発生します。

    AMD64 では発生しませんでした。

    エラーコードは SIGSEGV のようです。以下は fish shell での表示結果の一部。

    これが Segmentation Falut と表示されるのだと思います。

    luajittex -ini -jobname=luajittex -progname=luajittex luatex.ini
    
    This is LuajitTeX, Version 1.17.0 (TeX Live 2023)  (INITEX)
     restricted system commands enabled.
    ... 省略 ...
    50 preloaded fonts
    warning  (pdf backend): no pages of output.
    Transcript written on luajittex.log.
    fish: “luajittex -ini -jobname=luajitt…” terminated by signal c (Address boundary error)
    
和田 勇 への返信

Re: fmtutilでのluajittexフォーマット作成エラーについて

- m c の投稿
和田さん,検証をありがとうございました.
aarch64の実行ファイル(もしくはライブラリ)の問題のようですね.
# Debian以外のディストリビューションではどうか?ってのはあるかもしれませんが...

先にも言いましたがluajittexは実際使っていないので(LuaTeXを使う場面ではluahbtexが動いているので)当面放置しておき,
次(またはその先)のリビジョンで正常にフォーマットファイル作成ができるようになることを期待することにします.

とりあえずこの件はクローズとさせて下さい.
m c への返信

Re: fmtutilでのluajittexフォーマット作成エラーについて

- 和田 勇 の投稿
クローズの件、了解しました。

なんとなく malloc 関連と思われるので、
debian の派生系以外の RHEL 系などでは発生しないかもしれませんね。

現状分かりかけていること ...
    この現象は 4/29 に投入された LuaTeX 1.17.0 から発生しているようです。
    この修正までをチャラにして、1.16.1 に戻すと、発生しなくなります。

ソースの追跡は行わない予定でしたが ...
本家?の方に報告できるよう、 gdb のデバッグ方法忘れてしまったので
適宜デバッグコードを挟み込んだり strace での追跡などで奮闘中!!