まっしろけっけ

めもてきなやーつ

Rails に contribute する実績を解除した記念

はじめに

Rails を使い始めて 8 ~ 9 年くらい?経つのだけれど、なかなか機会が無く contribute 出来ていなかったがやっと出来たので記念に残しておく

内容について

github.com

こちらの PR なのですが、このバグを踏んだ経緯から説明します。

副業でお仕事をしているのですが、dalli の version up を行った時のことです。
dalli は v3.0 から大幅な変更が加えられており、独自で実装していた DalliStore という session store から Rails 標準の MemCacheStore 経由で Dalli::Client が呼ばれるという方式に変わりました。

PR をみてもらえればわかりますが、このバグは Dalli を v2.x から v3.x にあげたときに DaliStore(dalli v2.x) で memcached に格納されたデータを MemCacheStore 経由で read_multi を使って取得するときに発生するものになります。副業の方では read_multi で指定している key が 2 つしかなかったことから fetch で取得する方法に変更してこのバグを回避したのでお仕事としてはこれで終わりだったのですが、どうしてもこの解決方法に納得できず昼くらいに解決したけど夜までモヤモヤが残っていました。

モヤモヤの原因は Rails と Dalli どちらを修正するべきなのか?の判断が難しいものだったからで判断しかねていたので MemCacheStore の過去の PR で Dalli 関連のものってないのかな?と思い調べました。

それで辿り着いたのがこの PR でこの PR が取り込まれているということは Rails でもある程度 Dalli を利用した際の挙動について担保しておくということなのでこの PR を参考に test を書いて、該当箇所を修正したという感じ

最後に

最近は OSS 活動バグがあったら PR 出す程度しかしてないけれど Rails へ contribute できて嬉しかったので記念カキコ