Merge "Handle LLDP parse Unicode error"

This commit is contained in:
Zuul 2024-01-06 00:30:49 +00:00 committed by Gerrit Code Review
commit 47bb3da3eb
2 changed files with 19 additions and 1 deletions

View File

@ -55,7 +55,16 @@ class ParseLLDPHook(base.InspectionHook):
'node': node_uuid}) 'node': node_uuid})
continue continue
if parser.parse_tlv(tlv_type, data): try:
parsed_tlv = parser.parse_tlv(tlv_type, data)
except UnicodeDecodeError as e:
LOG.warning("LLDP TLV type %(tlv_type)d from Node '%(node)s' "
"can't be decoded: %(exc)s",
{'tlv_type': tlv_type, 'exc': e,
'node': node_uuid})
continue
if parsed_tlv:
LOG.debug("Handled TLV type %d. Node: %s", tlv_type, node_uuid) LOG.debug("Handled TLV type %d. Node: %s", tlv_type, node_uuid)
else: else:
LOG.debug("LLDP TLV type %d not handled. Node: %s", tlv_type, LOG.debug("LLDP TLV type %d not handled. Node: %s", tlv_type,

View File

@ -0,0 +1,9 @@
---
fixes:
- |
In case the lldp raw data collected by the inspection process
includes non utf-8 information, the parser fails breaking
the inspection process.
This patch works around that excluding the malformed data
and adding an entry in the logs to provide information
on the failed tlv.