Skip to content

Logging error "UnicodeEncodeError: 'ascii' codec can't encode character ..." if system's locate set to C #1496

@yuravk

Description

@yuravk

Actual behaviour
RHEL 8 to 9 upgrade errors when system's locale set to C

To Reproduce
Steps to reproduce the behaviour

  1. Install Leapp stack: dnf install -y leapp leapp-upgrade-el8toel9
  2. Change system's locale: export LANG=C LANGUAGE=C LC_ALL=C LC_MESSAGES=C LC_CTYPE=C
  3. Run leapp upgrade
  4. See error
--- Logging error ---
Traceback (most recent call last):
  File "/usr/lib64/python3.6/logging/__init__.py", line 996, in emit
    stream.write(msg)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2192' in position 187: ordinal not in range(128)
Call stack:
  File "/usr/bin/leapp", line 11, in <module>
    load_entry_point('leapp==0.20.0', 'console_scripts', 'leapp')()
  File "/usr/lib/python3.6/site-packages/leapp/cli/__init__.py", line 51, in main
    cli.command.execute('leapp version {}'.format(VERSION))
  File "/usr/lib/python3.6/site-packages/leapp/utils/clicmd.py", line 111, in execute
    args.func(args)
  File "/usr/lib/python3.6/site-packages/leapp/utils/clicmd.py", line 133, in called
    self.target(args)
  File "/usr/lib/python3.6/site-packages/leapp/cli/commands/upgrade/breadcrumbs.py", line 166, in wrapper
    return f(*args, breadcrumbs=breadcrumbs, **kwargs)
  File "/usr/lib/python3.6/site-packages/leapp/cli/commands/upgrade/__init__.py", line 117, in upgrade
    only_with_tags=only_with_tags)
  File "/usr/lib/python3.6/site-packages/leapp/workflows/__init__.py", line 351, in run
    instance.run()
  File "/usr/lib/python3.6/site-packages/leapp/repository/actor_definition.py", line 112, in run
    p.start()
  File "/usr/lib64/python3.6/multiprocessing/process.py", line 105, in start
    self._popen = self._Popen(self)
  File "/usr/lib64/python3.6/multiprocessing/context.py", line 223, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)
  File "/usr/lib64/python3.6/multiprocessing/context.py", line 277, in _Popen
    return Popen(process_obj)
  File "/usr/lib64/python3.6/multiprocessing/popen_fork.py", line 19, in __init__
    self._launch(process_obj)
  File "/usr/lib64/python3.6/multiprocessing/popen_fork.py", line 73, in _launch
    code = process_obj._bootstrap()
  File "/usr/lib64/python3.6/multiprocessing/process.py", line 258, in _bootstrap
    self.run()
  File "/usr/lib64/python3.6/multiprocessing/process.py", line 93, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3.6/site-packages/leapp/repository/actor_definition.py", line 75, in _do_run
    actor_instance.run(*args, **kwargs)
  File "/usr/lib/python3.6/site-packages/leapp/actors/__init__.py", line 319, in run
    self.process(*args)
  File "/etc/leapp/repos.d/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/actor.py", line 46, in process
    upgradeinitramfsgenerator.process()
  File "/etc/leapp/repos.d/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py", line 539, in process
    prepare_userspace_for_initram(context)
  File "/usr/lib/python3.6/site-packages/leapp/utils/deprecation.py", line 42, in process_wrapper
    return target_item(*args, **kwargs)
  File "/etc/leapp/repos.d/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py", line 245, in prepare_userspace_for_initram
    _install_initram_deps(packages)
  File "/etc/leapp/repos.d/system_upgrade/common/actors/initramfs/upgradeinitramfsgenerator/libraries/upgradeinitramfsgenerator.py", line 176, in _install_initram_deps
    used_repos=used_repos)
  File "/etc/leapp/repos.d/system_upgrade/common/libraries/dnfplugin.py", line 385, in install_initramdisk_requirements
    context.call(cmd, env=env)
  File "/etc/leapp/repos.d/system_upgrade/common/libraries/mounting.py", line 172, in call
    return run(self.type.make_command(cmd), *args, **kwargs)
  File "/usr/lib/python3.6/site-packages/leapp/libraries/stdlib/__init__.py", line 185, in run
    stdin=stdin, env=env, encoding=encoding)
  File "/usr/lib/python3.6/site-packages/leapp/libraries/stdlib/call.py", line 199, in _call
    **extra
  File "/usr/lib/python3.6/site-packages/leapp/libraries/stdlib/call.py", line 73, in _multiplex
    callback_linebuffered((fd, fd_type), pre)
  File "/usr/lib/python3.6/site-packages/leapp/libraries/stdlib/__init__.py", line 146, in _logfile_logging_handler
    api.current_logger().debug(line)
Message: 'Created symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service \u2192 /usr/lib/systemd/system/NetworkManager-dispatcher.service.'
Arguments: ()

Expected behavior
Logging errors aren't emitted during

leapp-logs.tar.gz

upgrade and with C system's locale.

System information (please complete the following information):

  • OS and version:
# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.10 (Ootpa)
  • # uname -a
Linux rhel8.vm 4.18.0-553.104.1.el8_10.x86_64 #1 SMP Tue Feb 3 13:44:58 EST 2026 x86_64 x86_64 x86_64 GNU/Linux
  • # rpm -qa "*leapp*"
leapp-deps-0.20.0-1.el8_10.noarch
leapp-upgrade-el8toel9-deps-0.23.0-1.el8_10.noarch
python3-leapp-0.20.0-1.el8_10.noarch
leapp-upgrade-el8toel9-0.23.0-1.el8_10.noarch
leapp-0.20.0-1.el8_10.noarch
  • logs attached

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions