[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 メーリングリストの案内