+++ This bug was initially created as a clone of Bug #579830 +++
Public summary:
Description of problem:
Registration of RHEL 4 system fails when the BIOS information returned by dmidecode contains characters like "form feed" (0x0c).
How reproducible:
100% for about a dozen of this customer's servers (Sun Fire X4150).
Steps to Reproduce:
Run rhnreg_ks or rhn_register to register system to Satellite server.
Actual results:
Registration fails with Internal Server Error, and the following in /var/log/up2date on the client system:
[Thu Mar 18 19:30:16 2010] up2date A protocol error occurred: Internal Server Error , attempt #1,
[Thu Mar 18 19:30:21 2010] up2date A protocol error occurred: Internal Server Error , attempt #2,
[Thu Mar 18 19:30:26 2010] up2date A protocol error occurred: Internal Server Error , attempt #3,
[Thu Mar 18 19:30:31 2010] up2date A protocol error occurred: Internal Server Error , attempt #4,
[Thu Mar 18 19:30:37 2010] up2date A protocol error occurred: Internal Server Error , attempt #5,
[Thu Mar 18 19:30:37 2010] up2date Internal Server Error
[Thu Mar 18 19:30:37 2010] up2date File "/usr/sbin/rhnreg_ks", line 404, in ?
main()
File "/usr/sbin/rhnreg_ks", line 359, in main
rhnreg.sendHardware(systemId, hardwareList)
File "/usr/share/rhn/up2date_client/rhnreg.py", line 569, in sendHardware
rpcServer.doCall(s.registration.add_hw_profile, systemId, hardwareList)
File "/usr/share/rhn/up2date_client/rpcServer.py", line 309, in doCall
raise up2dateErrors.CommunicationError(e.errmsg)
Expected results:
Successful registration.
Additionally - this strings couse problem as well:
'usbprod': 'Natural\xae Ergonomic Keyboard 4000'
'usbprod': 'Microsoft Trackball Explorer\xae'
'usbprod': 'Natural\xae Ergonomic Keyboard 4000'
in commit 931c907632ef023d66cec1dbc483851559d935a6
I simplified the regexp.
It did not work on some strings. E.g.
'\x02\x0f\x0eJ1A1' or
'\xff\xff\x04\x05\x06H2'
This string returns dmidecode in some machines in our lab.
The offending part of regexp was [\ud800-\udfff] and I do not why it does not work.
Since no knon hw return unicode chars (i.e above \xFF) I completly removed this part of regexp.