ありダラ(仮)が固まる

Rubyプロセスごと固まって、タスクマネージャからでないと殺せなくなる。
とりあえずパッチ。

--- writer.rb	(Revision 60)
+++ writer.rb	(Working Copy)
@@ -141,7 +141,8 @@
     f.rewind
     f.print fst, body
     article_transaction(f.path, "Post") do |uri|
-      form = agent_get_content(uri).forms.first
+      content = agent_get_content(uri)
+      form = content.forms.first
       form["year"], form["month"], form["day"] =
         *File.basename(f.path, ".txt").split("-", 3)
       form["trivial"] = "true" if option.trivial

ローカル変数に一旦代入すればおっけーって、なんだそれ。キモすぎる。
HpricotあたりがCレベルでなにかのマーク忘れてGCされてるとかじゃね?
けど1.8.6では動いてたんだよなぁ…。

あと再現したりしなかったりする不具合として、

  • プロキシを動かしてると503 Bad Gatewayになる
  • ありダラ(仮)じゃないけどgem updateで固まる

ActiveScriptRuby 1.8.7(p17) with-winsock2なんですがね。
他のgemの機能はわりと滞りないっぽく動いているのに、
gem updateすると前述のありダラ(仮)のようにプロセスが固まります。
しかもキモいのが、最初の一個二個のgemはアップデートに成功するんですよ。
で、あるgemで突然固まる。
そのgemが悪いのかというとそうでもないみたいで、プロセスを殺してもっかい
gem updateすると成功したりします。で次の次のgemぐらいでまた固まる。


あああ再現性がないバグなんてバグなんてバグなんてバグなんてバグなんて

あれ?

ASR-1.8.7-p17 (隠しバージョン3) - 日々の破片:
http://arton.no-ip.info/diary/20080619.html


から、最新置場に行って
ActiveScriptRuby(1.8.7-p22 --with-winsock2)
にしたら、gem updateはよくなったっぽい。


ありダラ(仮)も、パッチ前のコードでふつーに動くようになった。
なんじゃこりゃ。
もやもやするからRubyChangeLogでも読んできます。