アカウント名:
パスワード:
【謎】本当にあったfindコマンドの怖い話【おもしろ現象】http://www.kunst1080.net/entry/2018/03/20/120146 [kunst1080.net]
要約100万個のファイルに対して、find コマンドから始めて mv コマンドでファイル名を変更するワンライナーを実行すると、 mv コマンドが約158万回実行されました。
ワンライナーでやろうとしてハマった?
findを実行した時点でのファイルだけをmvしたかったのに、mvされたあとのファイルもfindに引っかかってしまった。って、よくあるお話。
当然やんとしか思わない。
言うほどよくある話ではない気がするけど。FTS_MAX_READDIR_ENTRIES(既定では100,000)を超える数のファイルを対象にしたときに発生して、しかも発生するファイル数は一定ではない、ってわけでしょ?ファイル数が多くても、複数ディレクトリにファイルが分散してる場合だとこの現象は発生しなさそうだし。
参考までに聞いときたいんだけど、どんな場合に発生したことがあるんですか?
つか、減る話はなんぼでもあるわけで、-depthオプションとかあることを考えるとfindがatomicでないことなんて自明でしょう。まあ「よく」はないかもしれないけど、それは予想しておけって事ですね。
#大阪人は「まあ、ようある話」って「よう言います」から。ようしらんけど。
減る話はなんぼでもあるわけで
意味不明です。
-depthオプションとかあることを考えるとfindがatomicでないことなんて自明でしょう。
複数ディレクトリ間でアトミックでないのは自明だけど、ディレクトリ内でアトミックでないことは、必ずしも自明じゃないでしょう。なので、
は、ディレクトリ間でそういうことがあった、という違う話を、ディレクトリ内の話と混同したように見えます。
ディレクトリ内も非アトミックに実装されている可能性がある、という意味で予測できる、と言うなら、確かにその通りですが、経験したわけでも、コードレビューしたわけでもなければ、後知恵ですね。
仮に、その可能性を事前に考えていたとしても、今回の検証で得られた知見は超えられてないですね。FTS_MAX_READDIR_ENTRIESを一つでも超えれば発生する、というわけではないのだから。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
これか? (スコア:1)
【謎】本当にあったfindコマンドの怖い話【おもしろ現象】
http://www.kunst1080.net/entry/2018/03/20/120146 [kunst1080.net]
要約
100万個のファイルに対して、find コマンドから始めて mv コマンドでファイル名を変更するワンライナーを実行すると、 mv コマンドが約158万回実行されました。
ワンライナーでやろうとしてハマった?
Re: (スコア:2)
findを実行した時点でのファイルだけをmvしたかったのに、mvされたあとのファイルもfindに引っかかってしまった。
って、よくあるお話。
当然やんとしか思わない。
Re: (スコア:1)
言うほどよくある話ではない気がするけど。
FTS_MAX_READDIR_ENTRIES(既定では100,000)を超える数のファイルを対象にしたときに発生して、しかも発生するファイル数は一定ではない、ってわけでしょ?
ファイル数が多くても、複数ディレクトリにファイルが分散してる場合だとこの現象は発生しなさそうだし。
参考までに聞いときたいんだけど、どんな場合に発生したことがあるんですか?
Re:これか? (スコア:2)
つか、減る話はなんぼでもあるわけで、-depthオプションとかあることを考えるとfindがatomicでないことなんて自明でしょう。
まあ「よく」はないかもしれないけど、それは予想しておけって事ですね。
#大阪人は「まあ、ようある話」って「よう言います」から。ようしらんけど。
Re:これか? (スコア:1)
減る話はなんぼでもあるわけで
意味不明です。
-depthオプションとかあることを考えるとfindがatomicでないことなんて自明でしょう。
複数ディレクトリ間でアトミックでないのは自明だけど、
ディレクトリ内でアトミックでないことは、必ずしも自明じゃないでしょう。
なので、
findを実行した時点でのファイルだけをmvしたかったのに、mvされたあとのファイルもfindに引っかかってしまった。
って、よくあるお話。
は、ディレクトリ間でそういうことがあった、という違う話を、ディレクトリ内の話と混同したように見えます。
ディレクトリ内も非アトミックに実装されている可能性がある、
という意味で予測できる、と言うなら、確かにその通りですが、
経験したわけでも、コードレビューしたわけでもなければ、後知恵ですね。
仮に、その可能性を事前に考えていたとしても、
今回の検証で得られた知見は超えられてないですね。
FTS_MAX_READDIR_ENTRIESを一つでも超えれば発生する、というわけではないのだから。