CLI 命令返回错误消息:utf8 编解码器无法解码位置中的字节 - 无效数据
Summary: 尝试获取“isi smb shares list”的输出时,CLI 中收到错误消息,错误消息指出:utf8 编解码器无法解码位置 [value1-value2] 中的字节 - 无效数据。 出现此问题的原因是将无效的 utf8 字符放入共享名称或描述中。CLI 或 WebUI 中不允许使用无效的 utf8 字符。自动共享生成工具和脚本可以绕过此限制并导致问题。
Symptoms
无效的 utf8 字符会导致返回错误消息,而不是群集上的共享列表。这些共享仍然可以从 WebUI 或日志中查看。
尝试获取“isi smb shares list”的输出时,CLI 中收到以下错误消息:
utf8 codec can't decode bytes in position [value1-value2] - invalid data.
通过创建新共享或选择已通过 WebUI 确认为没有不受支持的特殊字符的共享来确认此问题。
isi smb share view <sharename>
使用问题共享时,无法查看以下项的输出:
isi smb share view <problem_share_name>
Cause
此问题是由于在 CLI 或 WebUI 中不允许的共享名称或描述中放置无效的 utf8 字符所致。某些自动共享生成工具(如 VIPR 应用程序编程接口 (API) 调用)可以绕过此限制并导致此问题。
Resolution
使用 WebUI、日志和 "isi smb shares list --limit=#" 命令以查找导致问题的共享。
步骤 1 — 使用 CLI 命令按字母顺序确定共享名称的位置。
UNIX 中的字母顺序以美元符号 ($) 或百分号 (%) 等特殊字符开头,列在最前面。然后按字母顺序使用大写字母,后跟按字母顺序排列的小写字母。请参阅下面的示例:
ClusterName# isi smb shares list --format=table --limit=10 Share Name Path -------------------------------------------------------------------------------------- $AutoTest /ifs/data_dr/bi/std1/bi_autotest_fs1/BI_6272_$AutoTest $Booke /ifs/data_dr/shared/std1/sharedhfd_fs1/FACS_6230_$Booke $BudRef /ifs/data_dr/corp/std1/corporate_finance_fs1/FACS_6230_$BudRef $Bureau /ifs/data_dr/corp/std1/corp_6230_corporate_finance_fs2 $CLHomedirs3 /ifs/data_dr/bi/std1/upper_cl18/cl18/CLHomedirs3 $CORE14_NME /ifs/data_dr/oaisys/std1/upper_core14/core14/$CORE14_NME $CORE2_IS_START_FILES /ifs/data_dr/oaisys/std1/upper_core2/core2/$CORE2_IS_START_FILES $CORETSC_PRIM /ifs/data_dr/oaisys/std1/Data_CORETSC_PRIM $Clm_DataHFD_44 /ifs/data_dr/claim/std1/Clm_Data_Clm_DataHFD_44 $Core4_SCRATCH /ifs/data_dr/oaisys/std1/upper_core4/core4/Core4_SCRATCH -------------------------------------------------------------------------------------- Total: 10
在此示例中,当重复相同的命令时,限制为 11 时,将显示以下错误。这表示该错误是列表中的第 11 个条目。
ClusterName# isi smb shares list --format=table --limit=11 'utf8' codec can't decode bytes in position 5-7: invalid data
在此示例中,至少找到一个具有无效 UTF8 编码字符的条目,并且按字母顺序排列在 $Core 4_SCRATCH 之后。
步骤 2 — 使用 WebUI 或日志集查找按字母顺序$Core 4_SCRATCH 之后的下一个服务器消息块 (SMB) 共享。确认找到无效的共享名称条目:
Name: $DTASTAGE Path: /ifs/data_dr/oaisys/std1/upper_ops2/ops2/$DTASTAGE Comment: Share Owner: Wendi Marceaü - LOB Desktop Architecture
在此示例中,请注意“Comment”部分包含字符“ü”。必须更正此问题才能解决问题。进行更改并保存共享。
步骤 3 - 重复步骤 1 和步骤 2,直到所有共享都可以成功列出 "isi smb shares list" 命令指定可选的 spindle-group 参数,您可以实现这一点。