まず、新しいワークステーションにログインします。
_myAcct@ws5: mkdir /users/adminAcct/foo/parentDir/childDir
mkdir: cannot create directory ‘/users/adminAcct/foo/parentDir/childDir’: Permission denied
_
ChildDirが存在していても、_Permission denied
_エラー。
ChildDirにアクセスすると、このエラーが変わります。これは、iPythonでos.path.isdir()
を使用して、またはシェルでls
を使用して実行できます。
_myAcct@ws5: ls /users/adminAcct/foo/parentDir/childDir
file.cfg
myAcct@ws5: mkdir /users/adminAcct/foo/parentDir/childDir
mkdir: cannot create directory ‘/users/adminAcct/foo/parentDir/childDir’: File exists
_
「ファイルが存在します」というエラーを一貫して返すことができるようにしたい。
親ディレクトリ_--x
_に対して_/users/adminAcct/foo/parentDir
_グループ権限があります。子ディレクトリ_/users/adminAcct/foo/parentDir/childDir
_が存在し、そのディレクトリに対する_r-x
_グループ権限があります。これはもともとPythonの問題として始まりましたが、シェルで再現することができました。 NFSを介してホームディレクトリがマウントされているクラスターの一部であるCentOS6ワークステーションで作業しています。 _/users
_ディレクトリは_/etc/fstab
_にあり、オプション_(rw,vers=3,hard,intr,addr=<some IP addr>)
_でマウントされます。カーネルは_Linux ws5.MyCompany.com 2.6.32-431.17.1.el6.x86_64 #1 SMP Wed May 7 23:32:49 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
_です
子ディレクトリにアクセスしてからしばらくの間、mkdirは_File exists
_エラーを返し続けます。しばらくすると、mkdirは再び_Permission denied
_エラーを返します。これにより、_/users/adminAcct/foo/parentDir/childDir
_を_AIRFLOW_HOME
_として使用して、これらのワークステーションでエアフローCeleryExecutorワーカーを起動および実行する際に断続的な問題が発生します。これらの問題がいつ再発するかを予測することはできませんでした。
NFSクライアントは、ウォールクロックベースのタイムアウトを持つ属性をキャッシュします。
これによりパフォーマンスは向上しますが、一部のシナリオでは「わずかに不正確」な結果になります。ファイルの存在などに関する標準のUNIX保証は、クライアントの動作方法の性質によって常に満たされるとは限りません。
これを軽減する1つの方法は、クライアント側のキャッシュ(noac
)を無効にするか、ディレクトリエントリのキャッシュ(lookupcache=none
)-参照 https://linux.die.net/man/5/nfs