Created attachment 1608124 [details] patch Changes in Python 3.8 implementation of __str__ method for object class cause lvmdbusd to produce invalid lvm commands. Error example: Failed to call the 'LvCreate' method on the '/com/redhat/lvmdbus1/Vg/0' object: GDBus.Error:org.freedesktop.DBus.Python.dbus.exceptions.DBusException: ('com.redhat.lvmdbus1.Vg', 'Exit code 3, stderr = Invalid argument for --stripes: dbus.Int32(2, variant_level=1)\n Error during parsing of command line.\n') The problem is with converting dbus.UInt types to string lvmdbusd: On Python 3.8: >>> str(dbus.Int64(1)) 'dbus.Int64(1)' On Python 3.7 (and older): >>> str(dbus.UInt64(1)) '1' I have created a simple patch to fix this, it fixes errors discovered by libblockdev test suite. This might be something that should be fixed in python-dbus, but I also think that lvmdbusd shouldn't rely on dbus __str__ functions to produce a valid string and explicitly converting dbus.UInt types to integer first is a safer solution. LVM version: LVM version: 2.03.05(2) (2019-06-15) Library version: 1.02.163 (2019-06-15) Driver version: 4.40.0
Patch committed upstream: https://sourceware.org/git/?p=lvm2.git;a=commit;h=32a8865a272d31d5bc12332a4da0309ce3af9243
*** Bug 1745740 has been marked as a duplicate of this bug. ***