train-em
Currently, using Cinder's backup service with RBD the
backup-create operation gets stuck when logging
('use_json=True' must be set in the config file).
The oslo.log JSONFormatter gets stuck when passing an
RBDVolumeIOWrapper from os-brick. This happens via os-brick's
utils.trace() method which passes a connector containing
{'path': RBDVolumeIOWrapper}.
The oslo.log JSONFormatter format() method calls
oslo_serialization's jsonutils.to_primitive and passes in
this RBDVolumeIOWrapper object.
Therefore the to_primitive method eventually calls
RBDVolumeIOWrapper.read(). In order to fix this the current
path avoids mapping io.IOBase objects and fallback the wrapper
RBD volume object.
Co-authored-by: Eric Harney <eharney@redhat.com>
Closes-Bug: #1908607
Change-Id: I3c416e855cb5f0dc32d14b2749ba92aba8964574
(cherry picked from commit 02037330d8)
(cherry picked from commit fcd737e2b1)
(cherry picked from commit ab5c68d301)
Team and repository tags
oslo.serialization
The oslo.serialization library provides support for representing objects in transmittable and storable formats, such as Base64, JSON and MessagePack.
- Free software: Apache license
- Documentation: https://docs.openstack.org/oslo.serialization/latest/
- Source: https://opendev.org/openstack/oslo.serialization
- Bugs: https://bugs.launchpad.net/oslo.serialization
- Release notes: https://docs.openstack.org/releasenotes/oslo.serialization/
Description
Languages
Python
100%