确认故障现象

问题描述

CIFS协议,客户使用业务软件过程中,错误的使用了包含空格的路径,导致在9000存储CIFS共享中出现空格目录,在进入空格目录时,Windows资源管理器显示出现异常。

故障现象

  • 在父目录双击进入到该空格目录时,在资源管理中看到的该目录中的内容与父目录的内容一致。
  • 删除该空格目录,可能导致该目录中的所有文件以及目录本身被删除。

根因分析

  1. msdn中对文件命名规则明确提出名称最后一位不能是“空格”或者“.”,但是SMB标准协议中未做实际限制,导致中间的“空格”目录被创建。名称为空格的目录通过软件调用API可以创建成功,模拟报文可以创建,但是手动通过资源管理器创建时会被拦截。
  2. 当该问题出现后,在父目录下双击进入该空格目录时,资源管理器发送错误的报文,实际是再次进入了父目录,所以在资源管理器中看到的该目录中的内容与父目录的内容一致。
  3. 直接在父目录右键删除该空格目录,资源管理器发送错误的报文,实际发送的删除对象是父目录,会导致该目录中的所有文件以及父目录本身被删除。