トップ «前の日記(2025/07/16 (水) ) 最新 次の日記(2025/07/18 (金) )» 編集 RSS feed

HsbtDiary


2025/07/17 (木) [長年日記]

Pathname 組み込み後の CI 失敗を直していた

Pathname を組み込みクラスにしてから、Ruby CI のうち OpenBSD と macOS Sonoma の no-yjit な環境でだけ以下のようにテストが落ちていて、何これ、となったので調べていた。

https://rubyci.s3.amazonaws.com/osx1400arm-no-yjit/ruby-master/log/20250716T085004Z.fail.html.gz

TestAllocation::Literal#test_hash_literal [/Users/hsbt/Documents/cb-yjit/tmp/build/20250716T085004Z/ruby/test/ruby/test_allocation.rb:76]:
Expected 0 array allocations for "{}", but 1 arrays allocated.
<true> expected but was
<false>.

落ちている環境の共通点というと、clang を使っており、yjit が無効(OpenBSD ではそもそも動かない)なのでその辺かなあとビルドオプションを変えたりしながら少しずつ再現状況を特定して行ってる途中に mame さんが参戦してきたので二人で調べて再現条件を特定まで辿り着いて、さらに ko1、nobu というフルタイムコミッタ全員集合、って状態になって解決まで辿り着くことができた。

https://product.st.inc/entry/2025/07/17/104509

詳細は mame さんが上のエントリにまとめてくれたのでみてください。いやあ、コードに書かれている内容というよりコード(に書かれている内容)の量というのに mame さんが気がついた時はさすが〜と思ったのと、最終的に解決できてよかった。

snap.ruby のビルドが壊れていたので直した

ちょっと前から snapcraft で提供している ruby のバイナリパッケージが動かないよ、という報告があり、さらに バイナリビルドで用意している CI も見慣れないエラーで落ち続けているのをちゃんと調べて直した。

https://github.com/ruby/snap.ruby/actions/runs/16299611722/job/46030506415

pydantic_core._pydantic_core.ValidationError: 8 validation errors for Project
apps.env.adapter
  Extra inputs are not permitted [type=extra_forbidden, input_value='none', input_type=str]
    For further information visit https://errors.pydantic.dev/2.11/v/extra_forbidden

snapcraft の実行時にいきなり Python スタックトレースが出てきて、よくわからんなあとやる気がなかったけど真面目にみてみると、yaml の validator で none というフィールドがエラーになっている、って気配だったので snapcraft のビルド定義ファイルから該当箇所を削ったらビルドが通るようになった。

追加で LD_LIBRARY_PATH を設定しないといけなくなったりしていたので、細かいところをちょこちょこと直して 3.4.5 のバイナリパッケージをリリースしておいた。

https://github.com/ruby/snap.ruby/issues/42

元々報告があった内容も直っているようで大丈夫そう。お疲れ様でした。

FreeBSD 14.3 にアップグレード

少し前のことになるけど、FreeBSD 14.3 がリリースされていたので Ruby CI で使っているインスタンスの FreeBSD を 14.2 から 14.3 にしておいた。

https://www.freebsd.org/releases/14.3R/installation/

いつも通り、公式に用意されている手順通りに進めればエラーなく完了したので大変便利。