CLI command returns an error message: utf8 codec can't decode bytes in position - invalid data
Summary: An error message is received in the CLI when trying to get output for "isi smb shares list" The error message states: utf8 codec can't decode bytes in position [value1-value2] - invalid data. The issue occurs because invalid utf8 characters are placed into share names or descriptions. Invalid utf8 characters are not allowed in the CLI or WebUI. Automated share generation tools and scripts can bypass this limitation and cause the issue. ...
Symptoms
An invalid utf8 character causes an error message to be returned rather than the listing of shares on the cluster. These shares can still be viewed from the WebUI or in logs.
The following error message is received in the CLI when trying to get output for "isi smb shares list":
utf8 codec can't decode bytes in position [value1-value2] - invalid data.
Confirm this issue by creating a new share or choosing a share that has been confirmed with the WebUI as not having unsupported special characters.
isi smb share view <sharename>
With the problem share, the output of the following cannot be viewed:
isi smb share view <problem_share_name>
Cause
The issue is caused due to invalid utf8 characters being placed into share names or descriptions not allowed in the CLI or WebUI. Some automated share generation tools, such as VIPR Application Programming Interface (API) calls, can bypass this limitation and cause the issue.
Resolution
Use the WebUI, Logs, and the "isi smb shares list --limit=#" command to find the shares that are causing the problem.
Step 1 - Identify where the share name is alphabetically using the CLI commands.
The alphabetical order in UNIX starts with Special Characters such as dollar sign ($) or percentage sign (%) listed first. Then Capital Letters alphabetically, followed by Lowercase Letters alphabetically. See example below:
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
In this example, when the same command is repeated with a limit of 11, the following error displays. This indicates that the error is the 11th entry in the list.
ClusterName# isi smb shares list --format=table --limit=11 'utf8' codec can't decode bytes in position 5-7: invalid data
In this example, at least one of the entries with the invalid UTF8 encoded characters is found, and it comes alphabetically after $Core4_SCRATCH.
Step 2 - Use the WebUI or Log sets to find the next Server Message Block (SMB) share that follows $Core4_SCRATCH alphabetically. Confirm that the invalid share name entries are found:
Name: $DTASTAGE Path: /ifs/data_dr/oaisys/std1/upper_ops2/ops2/$DTASTAGE Comment: Share Owner: Wendi Marceaü - LOB Desktop Architecture
In this example, notice that the "Comment" section contains a character "ü." This must be corrected to resolve the issue. Make the change and save the share.
Step 3 - Repeat Step 1 and Step 2 until all shares can be successfully listed with the "isi smb shares list" command.