2010年09月20日 kernel: nfs: server xxxxxxxx not responding, still trying [長年日記]
_ kernel: nfs: server xxxxxxxx not responding, still trying
サーバー側(linux01)がSlackware-8.0、クライアント側(lib190)がSlackware-12.1な環境で以下のようにnfsマウントを行ったときに、異常にアクセスの遅いことに気付いた。
mount -t nfs lib190:/ /mnt
サーバー側(linux01)の/var/log/messagesには以下のようなメッセージが、1分間に4、5回程度繰り返されていた。
Sep 19 12:59:03 linux01 kernel: nfs: server lib190 not responding, still trying Sep 19 12:59:03 linux01 kernel: nfs: server lib190 OK
結局、対象療法ではあるけれども
mount -t nfs -o nfsvers=2 lib190:/ /mnt
として、nfsプロトコルのversion2を利用することを明示的に指定すると現象が治まった。
古いカーネル(2.4.x?)、古いユーティリティ(mount-2.11b)だとnfsプロトコルのversion3の実装に不完全なところが有るのかも知れないと想像。
_ /usr/lib/ruby/gems/1.8/gems/dbi-0.4.3/lib/dbi/utils/date.rb:57: undefined method `deprecate' for DBI::Date:Class (NoMethodError)
とある環境で、ruby+dbiなスクリプトで以下のようなエラーが出るようになった。
m-ito@c7x0 /home/m-ito/tmp> ./test3.rb /usr/lib/ruby/gems/1.8/gems/dbi-0.4.3/lib/dbi/utils/date.rb:57: undefined method `deprecate' for DBI::Date:Class (NoMethodError) from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/lib/ruby/gems/1.8/gems/dbi-0.4.3/lib/dbi/utils.rb:56 from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/lib/ruby/gems/1.8/gems/dbi-0.4.3/lib/dbi.rb:50 from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require' from ./test3.rb:4
deprecateというメソッドがみつからないらしい。
m-ito@c7x0 /home/m-ito/tmp> gem1.8 list *** LOCAL GEMS *** dbd-sqlite3 (1.2.5) dbi (0.4.3) deprecated (3.0.0, 2.0.1) sqlite3-ruby (1.2.5)
deprecatedがいつのまにか2.0.1から3.0.0にバージョンアップされている。これが怪しいかもしれない。ということで
m-ito@c7x0 /home/m-ito/tmp> su - パスワード: root@c7x0:~# gem1.8 uninstall deprecated Select gem to uninstall: 1. deprecated-2.0.1 2. deprecated-3.0.0 3. All versions > 2 Successfully uninstalled deprecated-3.0.0
で、無事復旧。いろいろapt-getした結果、バージョンの不整合な状態になっていたよう。