[serialization] incompatible archives from 1.43 to 1.44

Hi, I'm trying to read a binary archive with version 1.44 that was written with version 1.43. When loading I'm getting an exception in basic_binary_iarchive.ipp line 91 as the read library-version is higher than the boost-archive-version. The reason for that is that in line 80 * this->This() >> input_library_version; now two bytes are read whereas in prior boost-versions only one byte was read. There seems to be missing a load_override-function for library_version_type. Tobias

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 09/13/2010 06:13 AM, Löw, Tobias (Evonik Energy Services GmbH) wrote:
* this->This() >> input_library_version;
now two bytes are read whereas in prior boost-versions only one byte was read. There seems to be missing a load_override-function for library_version_type.
I'm guessing this has to do with input_library_version's type. That line hasn't been changed since 1.43, according to Trac. input_library_version's type was changed here: https://svn.boost.org/trac/boost/changeset/62546/trunk/boost/archive/impl/basic_binary_iarchive.ipp?contextall=1&old=48575&old_path=%2Ftrunk%2Fboost%2Farchive%2Fimpl%2Fbasic_binary_iarchive.ipp. I'll see if I can find where and why this change was made. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyOXR0ACgkQO/fqqIuE2t6SowCdGiJqGnSYphAqcA++gk+HW5+6 G8wAn1IvxETk08+y5XpxfE7HaFyAORWo =jrQ/ -----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 09/13/2010 06:13 AM, Löw, Tobias (Evonik Energy Services GmbH) wrote:
* this->This() >> input_library_version;
Follow up to my last post: the change in input_library_version's type is irrelevant as it was made before 1.43 was released, so presumably if there is a problem, it's in version_type. - - Bryce Lelbach -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyOXqQACgkQO/fqqIuE2t72aACghj9aurTka6aZyoBNnHajs1js wXwAoOmMDBOxdBxTTor5c9HwZS4bXZYP =OhCh -----END PGP SIGNATURE-----

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Please don't shoot me for chain posting. Last one, I swear. Your problem definitely seems to be in version_type (BOOSTROOT/boost/archive/basic_archive.hpp) - revision logs are here: https://svn.boost.org/trac/boost/log/trunk/boost/archive/basic_archive.hpp?r.... Ramey will know if this is a bug, breaking but intentional change or something else. - - Bryce Lelbach -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkyOYPYACgkQO/fqqIuE2t4StgCfYAKpbkQd1NdFOTtZXA09PyxG aSIAn2ptQ9a3Qj26LiUs7F6WpHOlQU5u =6m+E -----END PGP SIGNATURE-----

This was an error in 1.43. There is information in the release notes for 144 which should help expain this and provide a way to address it. Robert Ramey Löw, Tobias (Evonik Energy Services GmbH) wrote:
Hi,
I'm trying to read a binary archive with version 1.44 that was written with version 1.43. When loading I'm getting an exception in basic_binary_iarchive.ipp line 91 as the read library-version is higher than the boost-archive-version. The reason for that is that in line 80
* this->This() >> input_library_version;
now two bytes are read whereas in prior boost-versions only one byte was read. There seems to be missing a load_override-function for library_version_type.
Tobias
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Löw, Tobias (Evonik Energy Services GmbH <tobias.loew <at> evonik.com> writes:
Hi,
I'm trying to read a binary archive with version 1.44 that was written with
version 1.43. I have created bug report (Ticket #4660). Below It is short summury (https://svn.boost.org/trac/boost/ticket/4660#comment:7): 1) serialization 1.44 can not work with old version of binary archives. So backward compatibility was ruined. 2) format of binary archive in version 1.44 was changed, so version 1.43 (and below) does not work with new archive. And now we have 2 different incompatible version of native binary archive (before 1.44 and 1.44). Text archive does not have this problem So implementation of serialization in 1.44 is broken. I think this problem must be resolved ASAP. I think users must be informed about these problem with serialization and users must do not use this version in production code. May be we need 1.44.1 version? Sergey Voropaev

Sergey Voropaev wrote:
Löw, Tobias (Evonik Energy Services GmbH <tobias.loew <at> evonik.com> writes:
Hi,
I'm trying to read a binary archive with version 1.44 that was written with version 1.43.
I have created bug report (Ticket #4660). Below It is short summury (https://svn.boost.org/trac/boost/ticket/4660#comment:7): 1) serialization 1.44 can not work with old version of binary archives. So backward compatibility was ruined. 2) format of binary archive in version 1.44 was changed, so version 1.43 (and below) does not work with new archive. And now we have 2 different incompatible version of native binary archive (before 1.44 and 1.44). Text archive does not have this problem
So implementation of serialization in 1.44 is broken. I think this problem must be resolved ASAP. I think users must be informed about these problem with serialization and users must do not use this version in production code. May be we need 1.44.1 version?
Correct on all points. I am aware of the track item. I believe that I've addressed it at least in some cases. Unfortunately I've been bogged down in other stuff. I would recommend that uses not use binary archives with 1.42 and 1.43.
Sergey Voropaev
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Robert Ramey <ramey <at> rrsd.com> writes:
Correct on all points. I am aware of the track item. I believe that I've addressed it at least in some cases. Unfortunately I've been bogged down in other stuff.
I would recommend that uses not use binary archives with 1.42 and 1.43.
What is wrong with 1.43? I had tested part of our projects with boost 1.43 and I had not found any problem. But tests were preliminary and not complete. What possible problems will be in serialization 1.43 version? I did not use 1.42 version. My plan now is to upgrade our projects to 1.43 and stabilize system. Or it is better to wait 1.44.1 or something like? What are your recommendations? What about time scale? About "six" version number problem. As I believe, in 1.43 there are not problems with "six" version. Binary file has “7” version number in 1.43. Sergey Voropaev

Sergey Voropaev wrote:
Robert Ramey <ramey <at> rrsd.com> writes:
Correct on all points. I am aware of the track item. I believe that I've addressed it at least in some cases. Unfortunately I've been bogged down in other stuff.
I would recommend that uses not use binary archives with 1.42 and 1.43.
What is wrong with 1.43? I had tested part of our projects with boost 1.43 and I had not found any problem. But tests were preliminary and not complete. What possible problems will be in serialization 1.43 version?
Actually that may work. The problem only manifests itself when one reads a binary archive created with 1.42 (and I believe 1.43) and read with 1.44. I did not use 1.42 version.
My plan now is to upgrade our projects to 1.43 and stabilize system. Or it is better to wait 1.44.1 or something like? What are your recommendations?
I recommend using 1.44 if one is going to use binary_archives
What about time scale?
I believe that 1.44 is already released (www.boost.org)
About "six" version number problem. As I believe, in 1.43 there are not problems with "six" version. Binary file has "7" version number in 1.43.
And this fix-six changes the version # of 1.42 files to 7 from 6. Robert Ramey
Sergey Voropaev
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Robert Ramey <ramey <at> rrsd.com> writes:
.....
Thank you
I recommend using 1.44 if one is going to use binary_archives
It is not possible. We need backward data compatibility for binary archive. It is very important for our past release and for our future release. 1.44 is broken. Sergey Voropaev

1.44 DOES have backward compatibility with versions upto 1.41. I also believe it has backward compatibility with 1.43. Robert Ramey Sergey Voropaev wrote:
Robert Ramey <ramey <at> rrsd.com> writes:
.....
Thank you
I recommend using 1.44 if one is going to use binary_archives
It is not possible. We need backward data compatibility for binary archive. It is very important for our past release and for our future release. 1.44 is broken.
Sergey Voropaev
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Robert Ramey <ramey <at> rrsd.com> writes:
1.44 DOES have backward compatibility with versions upto 1.41. I also believe it has backward compatibility with 1.43.
Did you READ https://svn.boost.org/trac/boost/ticket/4660#comment:7 ? Did you RUN my test programs? As I understand it, you do not agree with my tests and my summary. What is your comments? Sergey Voropaev P.S. I run tests on windows x86 + VC++ 7.1 P.P.S. The absolutely correct diagnose of problem was in first letter of this topic. Thanks to Löw, Tobias.
participants (4)
-
Bryce Lelbach aka wash
-
Löw, Tobias (Evonik Energy Services GmbH)
-
Robert Ramey
-
Sergey Voropaev