On Thu, 2020-01-30 at 10:02 -0500, Derek Atkins wrote: > Frank Crawford < > [email protected] > > 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 >
