Hi Sandro, Le 02/01/2011 16:37, Sandro Tosi a écrit : > Well, I'm not exactly sure why this is happening (it should have not) > but could you try to apply the attached patch to /usr/bin/reportbug > and try to replicate the problem? > I tried with the patch applied, and unfortunately it doesn't prevent the crash. The final error message now ends with:
File "/usr/bin/reportbug", line 1733, in user_interface conftext = conftext + u'%s %s\n' % (f, confinfo[f].encode('utf-8')) AttributeError: 'exceptions.IOError' object has no attribute 'encode' Which actually helped me understand the problem a bit better: the origin of the offending 0xc3 byte is actually the error string "Permission non accordée" ("access denied" message with LANG=fr_FR.utf8) that occurs since the user runing reportbug doesn't have access to one of munin-node configuration files. Attached is a patch that works for me. I don't know Python, so I hope it's correct. The way the charset is guessed is copied from line 504 of /usr/bin/reportbug. hth, Manuel. PS: the patch is against a file from python-reportbug, so maybe the bug should be moved to this package. Up to you.
--- utils.py.ori 2011-01-06 01:25:15.000000000 +0100 +++ utils.py 2011-01-06 01:29:07.000000000 +0100 @@ -42,6 +42,7 @@ import rfc822 import socket import subprocess +import locale from string import ascii_letters, digits @@ -646,7 +647,10 @@ try: fp = file(filename) except IOError, msg: - confinfo[filename] = msg + charset = locale.nl_langinfo(locale.CODESET) + if charset.lower() == 'ansi_x3.4-1968': + charset = 'us-ascii' + confinfo[filename] = unicode(str(msg), encoding=charset) continue filemd5 = commands.getoutput('md5sum ' + commands.mkarg(filename)).split()[0]