yoggy
yoggy****@zd*****
2004年 6月 30日 (水) 05:54:49 JST
はじめまして,よぎ〜と申します. 0.7-devel-20040627+mod_ruby環境でリロード連射をすると, 設定しているCSSがたまにデフォルトの設定に戻ってしまう 問題について調べてみました. 参照: http://www.sabamiso.net/yoggy/tdiary/?date=20040628#p01 http://www.sabamiso.net/yoggy/tdiary/?date=20040628#c03 http://www.sabamiso.net/yoggy/tdiary/?date=20040628#c04 手元の環境: Apache 1.3.31 Ruby 1.8.1 mod_ruby 1.2.0 OS OpenBlockSS上のLinux(ちょっと遅い) 手元の環境では,hiki/config.rbを下記のように修正すると 問題が発生しなくなるみたいです. -------------------------------------------------------- $ diff -u config.rb.org config.rb --- config.rb.org Wed Jun 30 04:40:20 2004 +++ config.rb Wed Jun 30 04:39:26 2004 @@ -93,10 +93,11 @@ def_vars = '' variables.each do |var| def_vars << "#{var} = nil\n" end eval( def_vars ) - Thread.start { + t = Thread.start { $SAFE = 4 eval( cgi_conf, binding, "(hiki.conf)", 1 ) } + t.join variables.each do |var| eval "@#{var} = #{var} if #{var} != nil" end rescue IOError, Errno::ENOENT end -------------------------------------------------------- 遅いマシン上でHikiを動かしていると,下記のような 症状が発生する可能性があるのではないか?と思います. 1.$SAFE=4でのeval()が完全に終了しないうちに処理が進んでしまう 2.1が終了しないうちにConfigクラスから設定を読むと デフォルトの値が帰ってくる また,手元の環境では他にも, 管理者用パスワード入力画面でOKボタンを連打していると, パスワードを入力しなくてもまれに環境設定画面に入ることができる という現象を確認しています. Rubyはあまり触ったことがなく,的外れな事を 書いているかもしれませんので,その際にはご指摘ください. 以上,ご報告まで. -- yoggy / yoggy****@zd*****