NFS4マウントから共有ライブラリをロードすると、非常に奇妙な動作が発生します。
以下を考慮してください。
$ ucto
ucto: error while loading shared libraries: libfolia.so.3: cannot open shared object file: No such file or directory
調査した結果、このエラーが発生する理由がないと思います。
$ which ucto
/vol/customopt/lamachine/bin/ucto
$ echo $LD_LIBRARY_PATH
/vol/customopt/lamachine/lib:/vol/customopt/machine-translation/lib:/vol/customopt/nlptools/lib/:
$ ls -lh /vol/customopt/lamachine/lib/libfolia.so.3*
lrwxrwxrwx 1 proycon customopt 17 Sep 18 16:42 /vol/customopt/lamachine/lib/libfolia.so.3 -> libfolia.so.3.0.1
-rwxr-xr-x 1 proycon customopt 9.5M Sep 18 16:42 /vol/customopt/lamachine/lib/libfolia.so.3.0.1
問題なくライブラリファイルを開くことができることを確認しました。
今切り替えると他のホストそれまったく同じNFSマウントを使用してください。、何の問題もなく、ライブラリを問題なく見つけてロードできます。
取り付けベースは次のように取り付けられます。
customopt-srv.mydomain.com:/export/customopt on /vol/customopt type nfs (rw,nosuid,tcp,hard,intr,sloppy,vers=4)
ここで何が起こっているのでしょうか?私が知らないキャッシュはありますか?同様の問題が発生した人はいますか?クライアント側を見なければなりませんか、それともサーバー側を見なければなりませんか?
クライアントとサーバーの両方がUbuntu 14.04 LTSを実行しています。
答え1
図書館キャッシュのように聞こえます(/etc/ld.so.cache) クライアントで更新されていません。ldconfig -p
次に問題が発生した場合は、出力を確認して確認してください。
答え2
NFS4 はキャッシュを使用します。サーバー上のファイルを追加/変更/削除すると、クライアントのNFS4キャッシュはそれを認識せず、古いファイルを引き続き使用します。
しばらくすると、キャッシュされたファイルが古すぎて無効になり、新しいクエリが発生します。それからそれが「突然」効果がありました。