読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

WWW::Mechanizeで「can't modify frozen object」のエラーが発生する

久々にちょっと早く帰れたので、jijiのクリック証券プラグインを作っていたわけですが、レート情報を取ってくるところで以下のエラーが起きる。

, [2009-06-03T02:25:04.651000 #7420] ERROR -- : can't modify frozen object (TypeError)
/usr/lib/ruby/1.8/net/https.rb:138:in `verify_mode='
/usr/lib/ruby/1.8/net/https.rb:138:in `verify_mode='
/usr/lib/ruby/gems/1.8/gems/mechanize-0.9.0/lib/www/mechanize/chain/ssl_resolver.rb:20:in `handle'
/usr/lib/ruby/gems/1.8/gems/mechanize-0.9.0/lib/www/mechanize/chain.rb:30:in `pass'
/usr/lib/ruby/gems/1.8/gems/mechanize-0.9.0/lib/www/mechanize/chain/handler.rb:6:in `handle'

毎回ではなく、2回に1回発生している様子。んー、なんだコレ?と思ってぐぐってみると以下の不具合がヒット。

#24950 Mechanize produces error against https links

↑のコメント欄によると、「keep_alive=flae」にすれば改善されるとのこと。試してみると確かに直ったけど、影響範囲が不安。性能が劣化するだけならいいんだけど。

2009-09-21 修正

「keep_alive=true」になっていのを「keep_alive=flae」に修正。