[samba-jp:23098] Re: 「宛先には既に...ファイルが存在します」
ARAI Shun-ichi
hermes @ ceres.dti.ne.jp
2020年 9月 23日 (水) 19:30:56 JST
あらいです。
コメントありがとうございます。
In Msg <JxoOi8zulzl0m_rikfZqU3Kw0 @ nifty.com>;
Subject "[samba-jp:23096] Re: 「宛先には既に...ファイルが存在します」":
> 矢野です。
>
> nilfsはPOSIX ACLをサポートしていないなどSamba用ファイルシステムとしては機
> 能が不十分なところがあるような気がします。
この件、実は自宅サーバの/homeがNILFS2でして、このサーバはほぼ自分専
用かつSambaは主にLinuxからWindowsへのファイル転送です。
というわけで、FSとして十分ではないにしてもあまり困らないという実情が
あったりします。実際、結構長い期間使用していましたが問題に気付いたのは
最近です。
ただ、一度起きてしまうとずっとそのままなので、いずれ困ることになりそ
うな気もするので、ご相談させていただいたという次第です。
> ARAI Shun-ichi <hermes @ ceres.dti.ne.jp>さん:
> あらいと申します。
>
> 初めまして。昨日このMLに登録させていただきました。
> よろしくお願いいたします。
>
> さて、恐縮ですが、初めましてでいきなりがっつりとご相談をさせていただ
> きたいと思います。
>
> Windowsからファイルをコピーする際に、サーバ側にないのに既に存在する
> という確認ダイアログが出ることがあります。
>
> ダイアログのタイトルは「ファイルの置換またはスキップ」で、「宛先には
> 既に"..."という名前のファイルが存在します」というメッセージが書かれて
> いるものです。
> キャンセルすると、サイズ0のその名前のファイルが残るのですが、動作中
> に見ていると、それはダイアログが出た時点で既にできているようです。
>
> OSはGentoo Linuxで、Sambaは4.12.6ですが、4.11でも発生していましたし、
> 検索してみるとどうやらだいぶ前から起きている現象のようです。
>
> 自分なりに発生条件等調べてみたところ、次のようなことがわかりました。
>
> まずこの現象が起きるのは、一度サーバから「切り取り」してなくなったファ
> イルをWindows側からコピー等しようとする場合のようです。
> また、サーバ側のFSにも依存するようで、NILFS2だと起きてext4だと起きず、
> どうやらxattrをサポートしていないことが条件となっているようです。
>
> 他に、以下のようなこともわかりました。
> - サーバやクライアントPCを再起動しても発生する(永続する)
> - 一度発生したファイルでは、切り取りでなく削除しても発生する
> - 切り取りしたファイルの名前をWindows側で変更してからコピーしても発生する
> - 同様にWindows側でコピーしてできたファイルをコピーする場合でも発生する
> - 同じ名前で同じ内容のファイルでも、別途作成すると発生しない
>
> ログを多めに出力すると、この現象が起きている時には、コピーのために
> create_file_default()が呼び出された際に、既に存在しない筈のファイルの
> 情報がどこからか持ち出され、ea_listで渡されていることがわかりました。
> わかりましたとは言っても、これまでSambaのソースを見たことがなかった
> のでこのea_listtとやらが何者かよくわからないのですが、どうやらxattrを
> サポートしているFSではそこに保存しているようです。だからかその場合、ファ
> イルが存在しなければログではea_listは(nil)と表示されます。
>
> 推察するに、通常であればxattrに格納する情報を、どこかのDBに、ファイ
> ルの何かの情報のハッシュのようなものをキーにして保存していて、切り取り
> の際にそれを消去していない、などということではないでしょうか。
>
> この現象について、もし回避する手段等ご存じだったり改修の案があるよう
> でしたら、コメントをいただけたらと思います。
> よろしくお願いいたします。
samba-jp メーリングリストの案内