In other words, the dmi.chassis.asset.tag value is 25 bytes of ff.
We can work around this on Launchpad by doing:
inline_content.decode(charset, 'ignore')
However, apport should probably be fixed to ensure the report contains
only content that's valid for the declared charset. It may even be
interesting to record that the value for a field in the report is
invalid.
Okay, the cause is that the blob uploaded has invalid data in it. Here's a fragment of one part of the report:
... asset.tag: <<< gibberish here >>> vendor: LENOVO
dmi.board.name: LENOVO
dmi.board.vendor: LENOVO
dmi.chassis.
dmi.chassis.type: 6
dmi.chassis.
...
The Python repr of characters 790 to 840 of this part of the report is:
'asset.tag: \xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\xff\ xff\ndmi. chassis. t'
In other words, the dmi.chassis. asset.tag value is 25 bytes of ff.
We can work around this on Launchpad by doing:
inline_ content. decode( charset, 'ignore')
However, apport should probably be fixed to ensure the report contains
only content that's valid for the declared charset. It may even be
interesting to record that the value for a field in the report is
invalid.