sonic-utilities
sonic-utilities copied to clipboard
[GCU] Apply-patch fails in multi-ASIC platform due to missing YANG files changes
Description
GCU apply-patch basic scenarios fail for multi-asic platform. For the purpose of testing there were used same scenarios as in https://github.com/sonic-net/sonic-utilities/pull/3249 (empty, sunny, rainy) It seems there are missing changes from different YANG files. In below reported issues, you will find also some suggested solutions that verified and worked.
# Problem 1
$ sudo config apply-patch empty.json
sonic_yang(3):All Keys are not parsed in FABRIC_MONITOR
dict_keys(['monCapacityThreshWarn', 'monState'])
sonic_yang(3):exceptionList:[]
sonic_yang(3):Data Loading Failed:All Keys are not parsed in FABRIC_MONITOR
dict_keys(['monCapacityThreshWarn', 'monState'])
exceptionList:[]
Failed to apply patch due to: Validate json patch: [] failed due to:Data Loading Failed
All Keys are not parsed in FABRIC_MONITOR
dict_keys(['monCapacityThreshWarn', 'monState'])
exceptionList:[]
Usage: config apply-patch [OPTIONS] PATCH_FILE_PATH
Try "config apply-patch -h" for help.
Error: Validate json patch: [] failed due to:Data Loading Failed
All Keys are not parsed in FABRIC_MONITOR
dict_keys(['monCapacityThreshWarn', 'monState'])
exceptionList:[]
$
# Suggested solution 1:
In yang-models/sonic-fabric-monitor.yang, add leaf monCapacityThreshWarn and monState
$ diff yang-models-fixed/sonic-fabric-monitor.yang /usr/local/yang-models/sonic-fabric-monitor.yang
21,25d20
< leaf monCapacityThreshWarn {
< type uint32;
< default 85;
< description "The monCapacityThreshWarn.";
< }
49,54d43
< }
<
< leaf monState {
< description "monState";
< type string;
< default "disable";
$
# Problem 2 (after applying suggested solution 1)
$ sudo config apply-patch empty.json
sonic_yang(3):All Keys are not parsed in FABRIC_PORT
dict_keys(['Fabric0', 'Fabric1', 'Fabric10', 'Fabric100', 'Fabric101', 'Fabric102', 'Fabric103', 'Fabric104', 'Fabric105', 'Fabric106', 'Fabric107', 'Fabric108', 'Fabric109', 'Fabric11', 'Fabric110', 'Fabric111', 'Fabric112', 'Fabric113', 'Fabric114', 'Fabric115', 'Fabric116', 'Fabric117', 'Fabric118', 'Fabric119', 'Fabric12', 'Fabric120', 'Fabric121', 'Fabric122', 'Fabric123', 'Fabric124', 'Fabric125', 'Fabric126', 'Fabric127', 'Fabric128', 'Fabric129', 'Fabric13', 'Fabric130', 'Fabric131', 'Fabric132', 'Fabric133', 'Fabric134', 'Fabric135', 'Fabric136', 'Fabric137', 'Fabric138', 'Fabric139', 'Fabric14', 'Fabric140', 'Fabric141', 'Fabric142', 'Fabric143', 'Fabric144', 'Fabric145', 'Fabric146', 'Fabric147', 'Fabric148', 'Fabric149', 'Fabric15', 'Fabric150', 'Fabric151', 'Fabric152', 'Fabric153', 'Fabric154', 'Fabric155', 'Fabric156', 'Fabric157', 'Fabric158', 'Fabric159', 'Fabric16', 'Fabric160', 'Fabric161', 'Fabric162', 'Fabric163', 'Fabric164', 'Fabric165', 'Fabric166', 'Fabric167', 'Fabric168', 'Fabric169', 'Fabric17', 'Fabric170', 'Fabric171', 'Fabric172', 'Fabric173', 'Fabric174', 'Fabric175', 'Fabric176', 'Fabric177', 'Fabric178', 'Fabric179', 'Fabric18', 'Fabric180', 'Fabric181', 'Fabric182', 'Fabric183', 'Fabric184', 'Fabric185', 'Fabric186', 'Fabric187', 'Fabric188', 'Fabric189', 'Fabric19', 'Fabric190', 'Fabric191', 'Fabric2', 'Fabric20', 'Fabric21', 'Fabric22', 'Fabric23', 'Fabric24', 'Fabric25', 'Fabric26', 'Fabric27', 'Fabric28', 'Fabric29', 'Fabric3', 'Fabric30', 'Fabric31', 'Fabric32', 'Fabric33', 'Fabric34', 'Fabric35', 'Fabric36', 'Fabric37', 'Fabric38', 'Fabric39', 'Fabric4', 'Fabric40', 'Fabric41', 'Fabric42', 'Fabric43', 'Fabric44', 'Fabric45', 'Fabric46', 'Fabric47', 'Fabric48', 'Fabric49', 'Fabric5', 'Fabric50', 'Fabric51', 'Fabric52', 'Fabric53', 'Fabric54', 'Fabric55', 'Fabric56', 'Fabric57', 'Fabric58', 'Fabric59', 'Fabric6', 'Fabric60', 'Fabric61', 'Fabric62', 'Fabric63', 'Fabric64', 'Fabric65', 'Fabric66', 'Fabric67', 'Fabric68', 'Fabric69', 'Fabric7', 'Fabric70', 'Fabric71', 'Fabric72', 'Fabric73', 'Fabric74', 'Fabric75', 'Fabric76', 'Fabric77', 'Fabric78', 'Fabric79', 'Fabric8', 'Fabric80', 'Fabric81', 'Fabric82', 'Fabric83', 'Fabric84', 'Fabric85', 'Fabric86', 'Fabric87', 'Fabric88', 'Fabric89', 'Fabric9', 'Fabric90', 'Fabric91', 'Fabric92', 'Fabric93', 'Fabric94', 'Fabric95', 'Fabric96', 'Fabric97', 'Fabric98', 'Fabric99'])
sonic_yang(3):exceptionList:["'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'"]
sonic_yang(3):Data Loading Failed:All Keys are not parsed in FABRIC_PORT
dict_keys(['Fabric0', 'Fabric1', 'Fabric10', 'Fabric100', 'Fabric101', 'Fabric102', 'Fabric103', 'Fabric104', 'Fabric105', 'Fabric106', 'Fabric107', 'Fabric108', 'Fabric109', 'Fabric11', 'Fabric110', 'Fabric111', 'Fabric112', 'Fabric113', 'Fabric114', 'Fabric115', 'Fabric116', 'Fabric117', 'Fabric118', 'Fabric119', 'Fabric12', 'Fabric120', 'Fabric121', 'Fabric122', 'Fabric123', 'Fabric124', 'Fabric125', 'Fabric126', 'Fabric127', 'Fabric128', 'Fabric129', 'Fabric13', 'Fabric130', 'Fabric131', 'Fabric132', 'Fabric133', 'Fabric134', 'Fabric135', 'Fabric136', 'Fabric137', 'Fabric138', 'Fabric139', 'Fabric14', 'Fabric140', 'Fabric141', 'Fabric142', 'Fabric143', 'Fabric144', 'Fabric145', 'Fabric146', 'Fabric147', 'Fabric148', 'Fabric149', 'Fabric15', 'Fabric150', 'Fabric151', 'Fabric152', 'Fabric153', 'Fabric154', 'Fabric155', 'Fabric156', 'Fabric157', 'Fabric158', 'Fabric159', 'Fabric16', 'Fabric160', 'Fabric161', 'Fabric162', 'Fabric163', 'Fabric164', 'Fabric165', 'Fabric166', 'Fabric167', 'Fabric168', 'Fabric169', 'Fabric17', 'Fabric170', 'Fabric171', 'Fabric172', 'Fabric173', 'Fabric174', 'Fabric175', 'Fabric176', 'Fabric177', 'Fabric178', 'Fabric179', 'Fabric18', 'Fabric180', 'Fabric181', 'Fabric182', 'Fabric183', 'Fabric184', 'Fabric185', 'Fabric186', 'Fabric187', 'Fabric188', 'Fabric189', 'Fabric19', 'Fabric190', 'Fabric191', 'Fabric2', 'Fabric20', 'Fabric21', 'Fabric22', 'Fabric23', 'Fabric24', 'Fabric25', 'Fabric26', 'Fabric27', 'Fabric28', 'Fabric29', 'Fabric3', 'Fabric30', 'Fabric31', 'Fabric32', 'Fabric33', 'Fabric34', 'Fabric35', 'Fabric36', 'Fabric37', 'Fabric38', 'Fabric39', 'Fabric4', 'Fabric40', 'Fabric41', 'Fabric42', 'Fabric43', 'Fabric44', 'Fabric45', 'Fabric46', 'Fabric47', 'Fabric48', 'Fabric49', 'Fabric5', 'Fabric50', 'Fabric51', 'Fabric52', 'Fabric53', 'Fabric54', 'Fabric55', 'Fabric56', 'Fabric57', 'Fabric58', 'Fabric59', 'Fabric6', 'Fabric60', 'Fabric61', 'Fabric62', 'Fabric63', 'Fabric64', 'Fabric65', 'Fabric66', 'Fabric67', 'Fabric68', 'Fabric69', 'Fabric7', 'Fabric70', 'Fabric71', 'Fabric72', 'Fabric73', 'Fabric74', 'Fabric75', 'Fabric76', 'Fabric77', 'Fabric78', 'Fabric79', 'Fabric8', 'Fabric80', 'Fabric81', 'Fabric82', 'Fabric83', 'Fabric84', 'Fabric85', 'Fabric86', 'Fabric87', 'Fabric88', 'Fabric89', 'Fabric9', 'Fabric90', 'Fabric91', 'Fabric92', 'Fabric93', 'Fabric94', 'Fabric95', 'Fabric96', 'Fabric97', 'Fabric98', 'Fabric99'])
exceptionList:["'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'"]
Failed to apply patch due to: Validate json patch: [] failed due to:Data Loading Failed
All Keys are not parsed in FABRIC_PORT
dict_keys(['Fabric0', 'Fabric1', 'Fabric10', 'Fabric100', 'Fabric101', 'Fabric102', 'Fabric103', 'Fabric104', 'Fabric105', 'Fabric106', 'Fabric107', 'Fabric108', 'Fabric109', 'Fabric11', 'Fabric110', 'Fabric111', 'Fabric112', 'Fabric113', 'Fabric114', 'Fabric115', 'Fabric116', 'Fabric117', 'Fabric118', 'Fabric119', 'Fabric12', 'Fabric120', 'Fabric121', 'Fabric122', 'Fabric123', 'Fabric124', 'Fabric125', 'Fabric126', 'Fabric127', 'Fabric128', 'Fabric129', 'Fabric13', 'Fabric130', 'Fabric131', 'Fabric132', 'Fabric133', 'Fabric134', 'Fabric135', 'Fabric136', 'Fabric137', 'Fabric138', 'Fabric139', 'Fabric14', 'Fabric140', 'Fabric141', 'Fabric142', 'Fabric143', 'Fabric144', 'Fabric145', 'Fabric146', 'Fabric147', 'Fabric148', 'Fabric149', 'Fabric15', 'Fabric150', 'Fabric151', 'Fabric152', 'Fabric153', 'Fabric154', 'Fabric155', 'Fabric156', 'Fabric157', 'Fabric158', 'Fabric159', 'Fabric16', 'Fabric160', 'Fabric161', 'Fabric162', 'Fabric163', 'Fabric164', 'Fabric165', 'Fabric166', 'Fabric167', 'Fabric168', 'Fabric169', 'Fabric17', 'Fabric170', 'Fabric171', 'Fabric172', 'Fabric173', 'Fabric174', 'Fabric175', 'Fabric176', 'Fabric177', 'Fabric178', 'Fabric179', 'Fabric18', 'Fabric180', 'Fabric181', 'Fabric182', 'Fabric183', 'Fabric184', 'Fabric185', 'Fabric186', 'Fabric187', 'Fabric188', 'Fabric189', 'Fabric19', 'Fabric190', 'Fabric191', 'Fabric2', 'Fabric20', 'Fabric21', 'Fabric22', 'Fabric23', 'Fabric24', 'Fabric25', 'Fabric26', 'Fabric27', 'Fabric28', 'Fabric29', 'Fabric3', 'Fabric30', 'Fabric31', 'Fabric32', 'Fabric33', 'Fabric34', 'Fabric35', 'Fabric36', 'Fabric37', 'Fabric38', 'Fabric39', 'Fabric4', 'Fabric40', 'Fabric41', 'Fabric42', 'Fabric43', 'Fabric44', 'Fabric45', 'Fabric46', 'Fabric47', 'Fabric48', 'Fabric49', 'Fabric5', 'Fabric50', 'Fabric51', 'Fabric52', 'Fabric53', 'Fabric54', 'Fabric55', 'Fabric56', 'Fabric57', 'Fabric58', 'Fabric59', 'Fabric6', 'Fabric60', 'Fabric61', 'Fabric62', 'Fabric63', 'Fabric64', 'Fabric65', 'Fabric66', 'Fabric67', 'Fabric68', 'Fabric69', 'Fabric7', 'Fabric70', 'Fabric71', 'Fabric72', 'Fabric73', 'Fabric74', 'Fabric75', 'Fabric76', 'Fabric77', 'Fabric78', 'Fabric79', 'Fabric8', 'Fabric80', 'Fabric81', 'Fabric82', 'Fabric83', 'Fabric84', 'Fabric85', 'Fabric86', 'Fabric87', 'Fabric88', 'Fabric89', 'Fabric9', 'Fabric90', 'Fabric91', 'Fabric92', 'Fabric93', 'Fabric94', 'Fabric95', 'Fabric96', 'Fabric97', 'Fabric98', 'Fabric99'])
exceptionList:["'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'"]
Usage: config apply-patch [OPTIONS] PATCH_FILE_PATH
Try "config apply-patch -h" for help.
Error: Validate json patch: [] failed due to:Data Loading Failed
All Keys are not parsed in FABRIC_PORT
dict_keys(['Fabric0', 'Fabric1', 'Fabric10', 'Fabric100', 'Fabric101', 'Fabric102', 'Fabric103', 'Fabric104', 'Fabric105', 'Fabric106', 'Fabric107', 'Fabric108', 'Fabric109', 'Fabric11', 'Fabric110', 'Fabric111', 'Fabric112', 'Fabric113', 'Fabric114', 'Fabric115', 'Fabric116', 'Fabric117', 'Fabric118', 'Fabric119', 'Fabric12', 'Fabric120', 'Fabric121', 'Fabric122', 'Fabric123', 'Fabric124', 'Fabric125', 'Fabric126', 'Fabric127', 'Fabric128', 'Fabric129', 'Fabric13', 'Fabric130', 'Fabric131', 'Fabric132', 'Fabric133', 'Fabric134', 'Fabric135', 'Fabric136', 'Fabric137', 'Fabric138', 'Fabric139', 'Fabric14', 'Fabric140', 'Fabric141', 'Fabric142', 'Fabric143', 'Fabric144', 'Fabric145', 'Fabric146', 'Fabric147', 'Fabric148', 'Fabric149', 'Fabric15', 'Fabric150', 'Fabric151', 'Fabric152', 'Fabric153', 'Fabric154', 'Fabric155', 'Fabric156', 'Fabric157', 'Fabric158', 'Fabric159', 'Fabric16', 'Fabric160', 'Fabric161', 'Fabric162', 'Fabric163', 'Fabric164', 'Fabric165', 'Fabric166', 'Fabric167', 'Fabric168', 'Fabric169', 'Fabric17', 'Fabric170', 'Fabric171', 'Fabric172', 'Fabric173', 'Fabric174', 'Fabric175', 'Fabric176', 'Fabric177', 'Fabric178', 'Fabric179', 'Fabric18', 'Fabric180', 'Fabric181', 'Fabric182', 'Fabric183', 'Fabric184', 'Fabric185', 'Fabric186', 'Fabric187', 'Fabric188', 'Fabric189', 'Fabric19', 'Fabric190', 'Fabric191', 'Fabric2', 'Fabric20', 'Fabric21', 'Fabric22', 'Fabric23', 'Fabric24', 'Fabric25', 'Fabric26', 'Fabric27', 'Fabric28', 'Fabric29', 'Fabric3', 'Fabric30', 'Fabric31', 'Fabric32', 'Fabric33', 'Fabric34', 'Fabric35', 'Fabric36', 'Fabric37', 'Fabric38', 'Fabric39', 'Fabric4', 'Fabric40', 'Fabric41', 'Fabric42', 'Fabric43', 'Fabric44', 'Fabric45', 'Fabric46', 'Fabric47', 'Fabric48', 'Fabric49', 'Fabric5', 'Fabric50', 'Fabric51', 'Fabric52', 'Fabric53', 'Fabric54', 'Fabric55', 'Fabric56', 'Fabric57', 'Fabric58', 'Fabric59', 'Fabric6', 'Fabric60', 'Fabric61', 'Fabric62', 'Fabric63', 'Fabric64', 'Fabric65', 'Fabric66', 'Fabric67', 'Fabric68', 'Fabric69', 'Fabric7', 'Fabric70', 'Fabric71', 'Fabric72', 'Fabric73', 'Fabric74', 'Fabric75', 'Fabric76', 'Fabric77', 'Fabric78', 'Fabric79', 'Fabric8', 'Fabric80', 'Fabric81', 'Fabric82', 'Fabric83', 'Fabric84', 'Fabric85', 'Fabric86', 'Fabric87', 'Fabric88', 'Fabric89', 'Fabric9', 'Fabric90', 'Fabric91', 'Fabric92', 'Fabric93', 'Fabric94', 'Fabric95', 'Fabric96', 'Fabric97', 'Fabric98', 'Fabric99'])
exceptionList:["'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'", "'forceUnisolateStatus'"]
$
# Suggested solution 2
In yang-models/sonic-fabric-port.yang, add leaf forceUnisolateStatus.
$ diff yang-models-fixed/sonic-fabric-port.yang /usr/local/yang-models/sonic-fabric-port.yang
47,53d46
< leaf forceUnisolateStatus {
< description "forceUnisolateStatus";
< type string {
< length 1..128;
< }
< }
<
# Problem 3 (after applying suggested solution 2)
$ sudo config apply-patch empty.json
libyang[0]: Missing required element "lanes" in "PORT_LIST". (path: /sonic-port:sonic-port/PORT/PORT_LIST[name='Ethernet1/1'])
sonic_yang(3):Data Loading Failed:Missing required element "lanes" in "PORT_LIST".
Failed to apply patch due to: Validate json patch: [] failed due to:Data Loading Failed
Missing required element "lanes" in "PORT_LIST".
Usage: config apply-patch [OPTIONS] PATCH_FILE_PATH
Try "config apply-patch -h" for help.
Error: Validate json patch: [] failed due to:Data Loading Failed
Missing required element "lanes" in "PORT_LIST".
# Suggested solution 3
In yang-models/sonic-port.yang, remove the leaf lanes’s item “mandatory true”.
$ diff yang-models-fixed/sonic-port.yang /usr/local/yang-models/sonic-port.yang
69a70
> mandatory true;
Note! Please note that after this third suggested solution all basic scenarios work (sunny, rainy, empty). However, especially for suggested solution number 3 I am quite sure that the removal of mandatory true for lanes breaks existing test "generic_config_updater/test_eth_interface.py::test_remove_lanes" which means that either it is not the optimal solution or this case needs special handling/extra fixes on top of the suggested.
Steps to reproduce the issue
For all the tests empty patch was applied.
- Apply below steps in a multi-ASIC duthost.
- Create a file empty.json with content : []
$ cat empty.json
[]
- sudo config apply-patch empty.json
(Reported problems output is same for non-empty patches as well.)
Describe the results you received
Failed patch-apply.
Describe the results you expected
Successful empty patch apply in all cases.
Additional information you deem important (e.g. issue happens only occasionally)
Output of show version
$ show version
SONiC Software Version: SONiC.HEAD.776732-nokia-master-3ec6570e3
SONiC OS Version: 12
Distribution: Debian 12.6
Kernel: 6.1.0-11-2-amd64
Build commit: 3ec6570e3
Build date: Tue Jul 23 05:07:09 UTC 2024
Built by: gitlab-runner@sonic-build-server04
Platform: x86_64-nokia_ixr7250e_36x400g-r0
HwSKU: Nokia-IXR7250E-36x400G
ASIC: broadcom
ASIC Count: 2
Serial Number: EAG2-02-143
Model Number: N/A
Hardware Revision: 56
Uptime: 16:24:47 up 8:10, 1 user, load average: 1.52, 1.54, 1.63
Date: Wed 24 Jul 2024 16:24:47
Docker images:
REPOSITORY TAG IMAGE ID SIZE
docker-macsec latest 9e29cb1c37d4 407MB
docker-orchagent HEAD.776732-nokia-master-3ec6570e3 a2b9868a3489 417MB
docker-orchagent latest a2b9868a3489 417MB
docker-teamd HEAD.776732-nokia-master-3ec6570e3 782ce07ee61f 404MB
docker-teamd latest 782ce07ee61f 404MB
docker-sflow HEAD.776732-nokia-master-3ec6570e3 ad213de87143 405MB
docker-sflow latest ad213de87143 405MB
docker-fpm-frr HEAD.776732-nokia-master-3ec6570e3 3bda43fbde3f 436MB
docker-fpm-frr latest 3bda43fbde3f 436MB
docker-nat HEAD.776732-nokia-master-3ec6570e3 426b5d45703a 407MB
docker-nat latest 426b5d45703a 407MB
docker-dhcp-relay latest c0cdefa5b8ff 385MB
docker-platform-monitor HEAD.776732-nokia-master-3ec6570e3 6dfd76a1b485 461MB
docker-platform-monitor latest 6dfd76a1b485 461MB
docker-eventd HEAD.776732-nokia-master-3ec6570e3 698e5b6ead38 376MB
docker-eventd latest 698e5b6ead38 376MB
docker-snmp HEAD.776732-nokia-master-3ec6570e3 29cfeaab0506 415MB
docker-snmp latest 29cfeaab0506 415MB
docker-sonic-mgmt-framework HEAD.776732-nokia-master-3ec6570e3 83fdb85a9c4a 425MB
docker-sonic-mgmt-framework latest 83fdb85a9c4a 425MB
docker-database HEAD.776732-nokia-master-3ec6570e3 6a9db15a6e1c 384MB
docker-database latest 6a9db15a6e1c 384MB
docker-router-advertiser HEAD.776732-nokia-master-3ec6570e3 475ae601b4b2 376MB
docker-router-advertiser latest 475ae601b4b2 376MB
docker-mux HEAD.776732-nokia-master-3ec6570e3 ad8171033b5a 387MB
docker-mux latest ad8171033b5a 387MB
docker-lldp HEAD.776732-nokia-master-3ec6570e3 9c1699c165a3 384MB
docker-lldp latest 9c1699c165a3 384MB
docker-sonic-gnmi HEAD.776732-nokia-master-3ec6570e3 8c46dd708fb5 460MB
docker-sonic-gnmi latest 8c46dd708fb5 460MB
docker-syncd-brcm-dnx HEAD.776732-nokia-master-3ec6570e3 0f8e8b77e9ab 666MB
docker-syncd-brcm-dnx latest 0f8e8b77e9ab 666MB
docker-gbsyncd-broncos HEAD.776732-nokia-master-3ec6570e3 2477fe9a9c48 411MB
docker-gbsyncd-broncos latest 2477fe9a9c48 411MB
docker-gbsyncd-credo HEAD.776732-nokia-master-3ec6570e3 6187c2253b0f 384MB
docker-gbsyncd-credo latest 6187c2253b0f 384MB
@xincunli-sonic could you check this one too
@jfeng-arista @kenneth-arista Could you check this issue. I feel the yang model need an update for the new attributes added via (https://github.com/sonic-net/sonic-utilities/pull/3255)
@xincunli-sonic : Again should be fixed by now . Please recheck
Referencing https://github.com/sonic-net/sonic-buildimage/pull/19767
I can confirm that the issue is no longer present in the master branch after the fix in PR #19767. This issue can now be closed.