RubyのresolvによるIPv6のDNS逆引き時のエラー

RubyResolvIPアドレス(IPv4とv6が混在した某アクセスログ)の分析を行おうとした際に「can't modify frozen String (RuntimeError)」のエラーが表示されたので、メモを残しておく。症状としては、IPv4は問題なく逆引きできる、IPv6の逆引きはできない。

動作環境

OS: OSX Yosemite 10.10.5

$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin14]

サンプルコードと実行結果

$ host google.com
google.com has address 216.58.197.238
google.com has IPv6 address 2404:6800:4004:800::200e
require 'resolv'                                                                                                          

ipv6_test_string = "2404:6800:4004:800::200e"
puts ipv6_test_string
puts Resolv.getname(ipv6_test_string)
$ ruby hostname_fetcher_from_ipv6.rb
2404:6800:4004:800::200e
/usr/local/Cellar/ruby/2.3.0/lib/ruby/2.3.0/resolv.rb:2462:in `block in create': can't modify frozen String (RuntimeError)
        from /usr/local/Cellar/ruby/2.3.0/lib/ruby/2.3.0/resolv.rb:2462:in `scan'
        from /usr/local/Cellar/ruby/2.3.0/lib/ruby/2.3.0/resolv.rb:2462:in `create'

原因と対策?

当初、文字列が連結されている?と思い、.frozen?で状態を確認したり、.dupして複製したものを放り込んでみたりしたが変わらず。アップデート系のコマンドをググって試してみるも変化なし。
どうしようと思いながら調べていると、以下の情報を発見した。
Resolv::IPv6.create: avoid modifying frozen string literal · ruby/ruby@a3b53cd · GitHub

Bugっぽい?ということで、resolv.rbに変更を反映して再実行したところ、直った。そのうち本体に反映されるのかな?

 $ ruby hostname_fetcher_from_ipv6.rb
2404:6800:4004:800::200e
nrt12s01-in-x0e.1e100.net

完全にビギナーなので事あるごとに躓いている気がするが、これで分析の続きができる。