渋谷.rb[:20170517] で JRuby 9.1.9.0 のリグレッションを見つけた話

渋谷.rb だった。会場はいつものピクスタさん。

onk や秒速さんはじめのショートトークを聞きながら、宿題としていた Travis CI のエラーを見る時間に今回は充てていた。

結果としてリグレッションと判断された Issue は以下となる。

github.com

この Issue に辿り着くまでの話について、時間は朝に遡る。

  • 今日は朝起きたら、ruby-build に JRuby 9.1.9.0 の PR が出ているのを見たのがはじまり
  • RVM の方には出ていなかったので、Travis CI での確認の都合でそちらへの PR を出した
  • 半日くらい経った頃に RVM への PR がマージされたので、Travis CI のマトリックスJRuby を含んでいる自前のリポジトリで試す
  • Travis CI の動作としても良さそうだったので、RailsOracle enhanced adapter に PR を出す
  • 両方ビルドに失敗していて、それぞれの原因が異なっていた。Rails の方はタイミング問題というのはすぐ分かった
  • Oracle enhanced adapter の方は snapshot の頃から問題になっていたものと yahonda さんにアドバイスをもらう。simplecov の方にも PR を出してもらえていたので色々と問題の特定や課題へのリンクなどが捗った←このあたりから渋谷.rbでの活動
  • 落ちている点について Travis CI でのバックトレースを読む
  • simplecov のまわりで落ちているようなので、その周辺の simplecov-html を合わせて手元で ag 検索する
  • 見て行った結果、simplecov-html にある ERB テンプレートで落ちているようにみえた
  • 怪しいと思ったあたりのミニマムケースを書いてみて、JRuby 9.1.9.0 / JRuby 9.1.8.0 / Ruby 2.4.1 / Ruby 2.5.0dev の環境で動かしてみる
  • 期待どおりの差異が出たので、JRuby 9.1.9.0 のバグの可能性として Issue を書く
  • JRuby 側への Issue が説明になるので、そのリンクを付けて simplecov-html に修正パッチを書く
  • simplecov-html へのパッチの動作確認のため、simplecov の方の Gemfile に gem "simplecov-html", :path => "~/src/github.com/colszowka/simplecov-html" のパス指定をして失敗していたテストがとおることを確認する
  • simplecov-html に PR を出す
  • Oracle enhanced adapter の PR の方に状況を書く

ここまでのひと区切りで本日の渋谷.rb終了となり懇親会に向かってた。