Exception logging fails if system locale differs from en_us

Bug #1430399 reported by Timofey Durakov
14
This bug affects 3 people
Affects Status Importance Assigned to Milestone
oslo.db
Confirmed
Medium
Unassigned

Bug Description

oslo_db.sqlalchemy.provision.Backend._ensure_backend_available throws exception:
      File "/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_db/sqlalchemy/test_base.py", line 58, in setUp
        self.provision = provision.ProvisionedDatabase(self.DRIVER)
      File "/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_db/sqlalchemy/provision.py", line 53, in __init__
        self.backend = Backend.backend_for_database_type(database_type)
      File "/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_db/sqlalchemy/provision.py", line 103, in backend_for_database_type
        return backend._verify()
      File "/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_db/sqlalchemy/provision.py", line 130, in _verify
        eng = self._ensure_backend_available(self.url)
      File "/home/tdurakov/nova/.tox/py27/local/lib/python2.7/site-packages/oslo_db/sqlalchemy/provision.py", line 163, in _ensure_backend_available
        dict(dbapi=url.drivername, err=d_e)
      File "/usr/lib/python2.7/logging/__init__.py", line 1152, in info
        self._log(INFO, msg, args, **kwargs)
      File "/usr/lib/python2.7/logging/__init__.py", line 1271, in _log
        self.handle(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 1281, in handle
        self.callHandlers(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 1321, in callHandlers
        hdlr.handle(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 749, in handle
        self.emit(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 879, in emit
        self.handleError(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 851, in emit
        msg = self.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 724, in format
        return fmt.format(record)
      File "/usr/lib/python2.7/logging/__init__.py", line 464, in format
        record.message = record.getMessage()
      File "/usr/lib/python2.7/logging/__init__.py", line 328, in getMessage
        msg = msg % self.args
    UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 19: ordinal not in range(128)

There is postgres db instance on machine, localized with ru_ru. No openstack_citest user in DB was created.
eng.connect method call fails with localized error:
(OperationalError) ВАЖНО: пользователь "openstack_citest" не прошёл проверку подлинности (по паролю)
ВАЖНО: пользователь "openstack_citest" не прошёл проверку подлинности (по паролю)
 None None
logging such localized error fails in except section

Tags: localization
Changed in oslo.db:
status: New → Confirmed
importance: Undecided → Medium
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.