Hi On Tue, Dec 10, 2019 at 6:59 AM Eduardo Habkost <ehabk...@redhat.com> wrote: > > On Fri, Dec 06, 2019 at 09:27:23AM -0500, Cleber Rosa wrote: > > On Wed, Nov 27, 2019 at 02:10:38PM +0400, Marc-André Lureau wrote: > > > Use int.from_bytes() from python 3.2 instead. > > > > > > Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> > > > --- > > > scripts/analyze-migration.py | 35 +++++++++++++++++++---------------- > > > 1 file changed, 19 insertions(+), 16 deletions(-) > > > > > > diff --git a/scripts/analyze-migration.py b/scripts/analyze-migration.py > > > index 2b835d9b70..96a31d3974 100755 > > > --- a/scripts/analyze-migration.py > > > +++ b/scripts/analyze-migration.py > > > @@ -1,4 +1,4 @@ > > > -#!/usr/bin/env python > > > +#!/usr/bin/env python3 > [...] > > > > Marc-André, I couldn't yet pinpoint the reason yet, but this patch > > changes the parsing of bool fields. This is a diff between the output > > pre/post this patch on the same images: > > > > $ diff -u out_x8664_pre out_x8664_post > > --- out_x8664_pre 2019-12-06 09:14:16.128943264 -0500 > > +++ out_x8664_post 2019-12-06 09:23:35.861378600 -0500 > > @@ -3039,7 +3039,7 @@ > > "mac_reg[RADV]": "0x00000000", > > "mac_reg[TADV]": "0x00000000", > > "mac_reg[ITR]": "0x00000000", > > - "mit_irq_level": true > > + "mit_irq_level": false > > }, > > "e1000/full_mac_state": { > > "mac_reg": [ > > @@ -36010,10 +36010,10 @@ > > ], > > "smb_auxctl": "0x02", > > "smb_blkdata": "0x00", > > - "i2c_enable": true, > > + "i2c_enable": false, > > "op_done": true, > > - "in_i2c_block_read": true, > > - "start_transaction_on_status_read": true > > + "in_i2c_block_read": false, > > + "start_transaction_on_status_read": false > > }, > > "ar.tmr.timer": "ff ff ff ff ff ff ff ff", > > "ar.tmr.overflow_time": "0x0000000000000000", > > > > This true/false flipping is consistent across various images (tried on > > images generated on a few other targets). > > It looks like moving to python3 accidentally fixes a bug. > > This is VMSDFieldBool.read: > > def read(self): > super(VMSDFieldBool, self).read() > if self.data[0] == 0: > self.data = False > else: > self.data = True > return self.data > > On python2, MigrationFile.readvar() returned a string, so the > (self.data[0] == 0) check was never true. This means all boolean > fields were always initialized to True. > > On python3, MigrationFile.readvar() returns a bytearray, so the > (self.data[0] == 0) check now works as expected.
Ah! nice surprise. Do you mind updating the commit message on commit? Or should I resend? thanks -- Marc-André Lureau