*subscription-manager* reports an *RPM* package if its vendor contains non-UTF8 characters
Previously, the *subscription-manager* utility assumed UTF-8 data in the *RPM* package vendor field. Consequently, if an *RPM* installed on the system contained a vendor with non-UTF8 characters, the *subscription-manager* failed to report the packages. With this update, the *subscription-manager* has been updated to ignore encoding issues in the *RPM* package vendor field. As a result, *subscription-manager* reports a package profile correctly even if the installed *RPM* has a non-UTF8 vendor.
Getting the following error when the vendor of rpm contains latin character.
Description of problem:
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.6/json/__init__.py", line 230, in dumps
return _default_encoder.encode(obj)
File "/usr/lib64/python2.6/json/encoder.py", line 367, in encode
chunks = list(self.iterencode(o))
File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode
for chunk in self._iterencode_dict(o, markers):
File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict
for chunk in self._iterencode(value, markers):
File "/usr/lib64/python2.6/json/encoder.py", line 294, in _iterencode
yield encoder(o)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 9: invalid start byte
0xf6 is 'รถ' in latin character.
[1] https://docs.python.org/2/library/json.html
-------------
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
-------------
Based on the above documentation, the default encoding for json.dumps is 'utf8'.
(In reply to Chris Snyder from comment #3)
> What version of subscription-manager and python-rhsm are being used here?
Checking sosreport from RHEL6 client in attached case, these packages are installed:
python-rhsm-1.18.6-1.el6.x86_64
python-rhsm-certificates-1.18.6-1.el6.x86_64
subscription-manager-1.18.10-1.el6.x86_64
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2018:0681
Getting the following error when the vendor of rpm contains latin character. Description of problem: File "<stdin>", line 1, in <module> File "/usr/lib64/python2.6/json/__init__.py", line 230, in dumps return _default_encoder.encode(obj) File "/usr/lib64/python2.6/json/encoder.py", line 367, in encode chunks = list(self.iterencode(o)) File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode for chunk in self._iterencode_dict(o, markers): File "/usr/lib64/python2.6/json/encoder.py", line 275, in _iterencode_dict for chunk in self._iterencode(value, markers): File "/usr/lib64/python2.6/json/encoder.py", line 294, in _iterencode yield encoder(o) UnicodeDecodeError: 'utf8' codec can't decode byte 0xf6 in position 9: invalid start byte 0xf6 is 'รถ' in latin character. [1] https://docs.python.org/2/library/json.html ------------- json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw) ------------- Based on the above documentation, the default encoding for json.dumps is 'utf8'.