[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Backward compatibility of next beta

From: Frank Crawford
Subject: Re: Backward compatibility of next beta
Date: Sat, 01 Feb 2020 21:20:13 +1100
User-agent: Evolution 3.34.3 (3.34.3-1.fc31)

On Thu, 2020-01-30 at 10:02 -0500, Derek Atkins wrote:
> Frank Crawford <
> address@hidden
> > writes:
> > No, the use of "--remote-schema" is the issue as it passes data
> > between
> > the two programs in a specific format that has changed between
> > python2
> > and python3 because of internal variations.
> So what data specifically changed?

Okay, to get into the technical details, as I tracked them down, and
there may be other issues over and above these, but much of the data between 
remote servers is passed in pickle format.

One of the options in a pickle is to not just pass the data but the
object, or more specifically the data and the function call to process
that data.  These functions are essentially assumed to be the same
function on both sides.  These functions are essentially looked up in
the python symbol table.

Unfortunately in Python2 the functions in the symbol table are in
ascii, while in Python3 they are in unicode, and so the pickle data
doesn't match on the lookup in the symbol table, and hence most objects
passed between the two return a "function not found" error.

Without somehow modifying the symbol table (which would probably break
other things) you can't get around it, and you would need to modify it
on both sides scripts.

There are a number of other items like just the strings transition from
ascii to unicode for the actual data needs to be fixed, on to new
pickle formats available in Python3, that would be a headache, but they
could be addressed.

Unfortunately they are minor compared to the symbol table issue.

> > Regards
> > Frank
> -derek

reply via email to

[Prev in Thread] Current Thread [Next in Thread]