
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
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%