Bug 1334023 - [abrt] dnf: i18n.py:44:write:UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 20: ordinal not in range(128)
Summary: [abrt] dnf: i18n.py:44:write:UnicodeEncodeError: 'ascii' codec can't encode c...
Keywords:
Status: CLOSED DUPLICATE of bug 1332012
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf
Version: 24
Hardware: x86_64
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Packaging Maintenance Team
QA Contact: Fedora Extras Quality Assurance
URL: https://retrace.fedoraproject.org/faf...
Whiteboard: abrt_hash:ca02044d9193e53cab370f517da...
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-05-07 08:59 UTC by Sylvain Réault
Modified: 2016-05-09 12:17 UTC (History)
6 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2016-05-09 11:47:02 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
File: _var_log_dnf.log (122.64 KB, text/plain)
2016-05-07 08:59 UTC, Sylvain Réault
no flags Details
File: backtrace (1.37 KB, text/plain)
2016-05-07 08:59 UTC, Sylvain Réault
no flags Details
File: dnf-makecache.log (1.39 MB, text/plain)
2016-05-07 08:59 UTC, Sylvain Réault
no flags Details
File: environ (2.13 KB, text/plain)
2016-05-07 08:59 UTC, Sylvain Réault
no flags Details

Description Sylvain Réault 2016-05-07 08:59:39 UTC
Version-Release number of selected component:
dnf-1.1.8-1.fc24

Additional info:
reporter:       libreport-2.7.0
cmdline:        /usr/bin/python3 /usr/bin/dnf install yumex-dnf-4.1.6-1.fc24.noarch
executable:     /usr/bin/dnf
kernel:         4.5.3-300.fc24.x86_64
pkg_fingerprint: 73BD E983 81B4 6521
pkg_vendor:     Fedora Project
reproducible:   The problem is reproducible
runlevel:       N 5
type:           Python3
uid:            0

Truncated backtrace:
i18n.py:44:write:UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 20: ordinal not in range(128)

Traceback (most recent call last):
  File "/usr/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python3.5/site-packages/dnf/cli/main.py", line 174, in user_main
    errcode = main(args)
  File "/usr/lib/python3.5/site-packages/dnf/cli/main.py", line 60, in main
    return _main(base, args)
  File "/usr/lib/python3.5/site-packages/dnf/cli/main.py", line 120, in _main
    ret = resolving(cli, base)
  File "/usr/lib/python3.5/site-packages/dnf/cli/main.py", line 149, in resolving
    base.do_transaction(display=displays)
  File "/usr/lib/python3.5/site-packages/dnf/cli/cli.py", line 200, in do_transaction
    if self.conf.assumeno or not self.output.userconfirm():
  File "/usr/lib/python3.5/site-packages/dnf/cli/output.py", line 631, in userconfirm
    choice = dnf.i18n.ucd_input(msg)
  File "/usr/lib/python3.5/site-packages/dnf/i18n.py", line 109, in ucd_input
    print(ucstring, end='')
  File "/usr/lib/python3.5/site-packages/dnf/i18n.py", line 44, in write
    self.stream.write(s)
UnicodeEncodeError: 'ascii' codec can't encode character '\xa0' in position 20: ordinal not in range(128)

Local variables in innermost frame:
self: <dnf.i18n.UnicodeStream object at 0x7f78ab8c0eb8>
s: 'Est-ce correct [o/N]\xa0: '

Comment 1 Sylvain Réault 2016-05-07 08:59:44 UTC
Created attachment 1154820 [details]
File: _var_log_dnf.log

Comment 2 Sylvain Réault 2016-05-07 08:59:45 UTC
Created attachment 1154821 [details]
File: backtrace

Comment 3 Sylvain Réault 2016-05-07 08:59:52 UTC
Created attachment 1154822 [details]
File: dnf-makecache.log

Comment 4 Sylvain Réault 2016-05-07 08:59:53 UTC
Created attachment 1154823 [details]
File: environ

Comment 5 Michal Luscon 2016-05-09 11:47:02 UTC

*** This bug has been marked as a duplicate of bug 1332012 ***

Comment 6 Dov Grobgeld 2016-05-09 12:17:57 UTC
I don't agree that this is a duplicate of 1332012 as its solution does not solve this bug:

https://github.com/rpm-software-management/dnf/pull/484

This pull request does not touch .../dnf/i18.py which is where this bug crashes. To solve this bug the same treatment of the print statement as in pull 484 is needed. I.e. something similar like:

-        print(ucstring, end='')
+        try:
+            print(ucstring, end='')
+        except UnicodeEncodeError:
+            print(ucstring.encode(sys.stdout.encoding, 'backslashreplace'))


Note You need to log in before you can comment on or make changes to this bug.