Ruby の開発では、PR やコミットごとに実行される CI とは別に daily でリリース用の snapshot パッケージが作成できるか、それらのテストが通るか、などをチェックしているのだけど、週末を挟んで snapshot 作成のスクリプトが壊れていたので調べて直した。
https://bugs.ruby-lang.org/issues/20771
おそらくは ubuntu-latest でインストールされる 7zip のバージョンが変わったから、などが原因で -l
オプションをつけると落ちてしまうという症状だったので、素朴にオプションを消すことで対処した。7zip のリリースノートなどを探してみたけど、それらしいものは見つけられなかったんだよなあ。おそらくは -l
オプションが、というより関係ないオプションを付けたときにエラーとなるようにした、とかそういう話とは思う。
Ruby CI を監視していると、9/26 ごろから Amazon Linux 2 というようなやや古めの Linux で fork の際にメモリが足りなくてエラー、というようにテストが落ちるようになってしまった。最初は mame さんと、よくわからんのでスワップ追加で、と雑に対応していたんだけど、RHEL8 でも同じ症状がでるようになって、さすがにこれは何かが起きているだろう、と mame さんが調べたところ、メモリリークを起こしているのを見つけて直すことができた。
https://bugs.ruby-lang.org/issues/20773
大本の原因は nobu の修正の if 条件が逆だった、ということなんだけど、新し目の Linux だとあからさまなメモリリークではなくてテストは通ってしまうという症状だったらしく、久しぶりに古めの OS でも色々テストを流すことの意義を感じて、いい出来事だった。
なんかこの日はこんなのばかり。何もしてないのに壊れた系。daily で作っている master の HEAD を使った Ubuntu のイメージが何故かビルドに失敗するようになったので調べて直した。
https://github.com/ruby/docker-images/pull/107
イメージのビルドスクリプトは触ってないので、ubuntu のベースイメージで何か変わったのか?というあたりだけど、--enable-shared
をつけてビルド & インストールしたときに /usr/local/lib
の下にある.so ファイルが見つからなくて ruby
というコマンドが実行できないということだったので LD_LIBRARY_PATH
を更新することで動くようにした。
/usr/local/lib
が LD_LIBRARY_PATH
から外れることなんてあるの?という感じではあるけど、一旦はこれで。