[Bug 1348244] [NEW] debug log messages need to be unicode

Launchpad Bug Tracker 1348244 at bugs.launchpad.net
Wed Jun 3 04:20:12 UTC 2015


You have been subscribed to a public bug by Ubuntu Foundations Team Bug Bot (crichton):

[Impact]

 * Nova services fail to start because they cannot connect to rsyslog

[Test Case]

 * Set user_syslog to True in nova.conf, stop rsyslog service and
restart nova services.

[Regression Potential]

 * None

When nova services log to syslog, they should wait for syslog to start
prior to the nova-* services start.


Debug logs should be:

    LOG.debug("message")  should be LOG.debug(u"message")

Before the translation of debug log messages was removed, the
translation was returning unicode.   Now that they are no longer
translated they need to be explicitly marked as unicode.

This was confirmed by discussion with dhellman.   See
2014-07-23T13:48:23 in this log http://eavesdrop.openstack.org/irclogs
/%23openstack-oslo/%23openstack-oslo.2014-07-23.log

The problem was discovered when an exception was used as replacement
text in a debug log message:

       LOG.debug("Failed to mount image %(ex)s)", {'ex': e})

In particular it was discovered as part of enabling lazy translation,
where the exception message is replaced with an object that does not
support str().   Note that this would also fail without lazy enabled, if
a translation for the exception message was provided that was unicode.

Example trace:

 Traceback (most recent call last):
  File "nova/tests/virt/disk/test_api.py", line 78, in test_can_resize_need_fs_type_specified
    self.assertFalse(api.is_image_partitionless(imgfile, use_cow=True))
  File "nova/virt/disk/api.py", line 208, in is_image_partitionless
    fs.setup()
  File "nova/virt/disk/vfs/localfs.py", line 80, in setup
    LOG.debug("Failed to mount image %(ex)s)", {'ex': e})
  File "/usr/lib/python2.7/logging/__init__.py", line 1412, in debug
    self.logger.debug(msg, *args, **kwargs)
  File "/usr/lib/python2.7/logging/__init__.py", line 1128, in debug
    self._log(DEBUG, msg, args, **kwargs)
  File "/usr/lib/python2.7/logging/__init__.py", line 1258, in _log
    self.handle(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 1268, in handle
    self.callHandlers(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 1308, in callHandlers
    hdlr.handle(record)
  File "nova/test.py", line 212, in handle
    self.format(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 723, 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
  File "/opt/stack/nova/.tox/py27/local/lib/python2.7/site-packages/oslo/i18n/_message.py", line 167, in __str__
    raise UnicodeError(msg)
UnicodeError: Message objects do not support str() because they may contain non-ascii characters. Please use unicode() or translate() instead.
======================================================================
FAIL: nova.tests.virt.disk.test_api.APITestCase.test_resize2fs_e2fsck_fails
tags: worker-3

** Affects: cinder
     Importance: High
     Assignee: Jay Bryant (jsbryant)
         Status: Fix Released

** Affects: nova
     Importance: Undecided
     Assignee: James Carey (jecarey)
         Status: Fix Released

** Affects: oslo-incubator
     Importance: Undecided
     Assignee: James Carey (jecarey)
         Status: Fix Released

** Affects: nova (Ubuntu)
     Importance: Undecided
     Assignee: Liang Chen (cbjchen)
         Status: In Progress


** Tags: patch
-- 
debug log messages need to be unicode
https://bugs.launchpad.net/bugs/1348244
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list