diff mbox

[PATCH-for-2.9] replay/replay.c: bump REPLAY_VERSION

Message ID 20170324152607.6604-1-alex.bennee@linaro.org
State Superseded
Headers show

Commit Message

Alex Bennée March 24, 2017, 3:26 p.m. UTC
A previous commit (3d4d16f4) added support for audio record/playback.
However this breaks the logfile ABI due to the re-ordering of the
ReplayEvents enum. The REPLAY_VERSION check is meant to prevent you
from using old log files in newer QEMUs but this is currently broken.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 replay/replay.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.11.0

Comments

Eric Blake March 24, 2017, 5:11 p.m. UTC | #1
On 03/24/2017 10:26 AM, Alex Bennée wrote:
> A previous commit (3d4d16f4) added support for audio record/playback.

> However this breaks the logfile ABI due to the re-ordering of the

> ReplayEvents enum. The REPLAY_VERSION check is meant to prevent you

> from using old log files in newer QEMUs but this is currently broken.


As we don't have a formal release with the reordered enum yet, would an
alternative approach be partially reverting 3d4d16f4 to instead stick
the new enum values at the end, so that all existing enums are in the
same order?  Or do you still need the version bump even then, because
you don't want a new stream (with the new enums) being played to an
older system that isn't expecting them?

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org
Alex Bennée March 24, 2017, 5:25 p.m. UTC | #2
Eric Blake <eblake@redhat.com> writes:

> On 03/24/2017 10:26 AM, Alex Bennée wrote:

>> A previous commit (3d4d16f4) added support for audio record/playback.

>> However this breaks the logfile ABI due to the re-ordering of the

>> ReplayEvents enum. The REPLAY_VERSION check is meant to prevent you

>> from using old log files in newer QEMUs but this is currently broken.

>

> As we don't have a formal release with the reordered enum yet, would an

> alternative approach be partially reverting 3d4d16f4 to instead stick

> the new enum values at the end, so that all existing enums are in the

> same order?


That would certainly be an option.

> Or do you still need the version bump even then, because

> you don't want a new stream (with the new enums) being played to an

> older system that isn't expecting them?


I'm not personally bothered either way. Currently the check is a simple
match so there is not really the concept of a super/subsets of log file.

I only ran into this as I was trying to debug the record/replay
regression while writing a dumper script to debug the current
regression:

  https://github.com/stsquad/qemu/blob/mttcg/more-fixes-for-rc1-v2/scripts/replay-dump.py

--
Alex Bennée
Pavel Dovgalyuk March 27, 2017, 5:42 a.m. UTC | #3
Reviewed-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>



> -----Original Message-----

> From: Alex Bennée [mailto:alex.bennee@linaro.org]

> Sent: Friday, March 24, 2017 6:26 PM

> To: pavel.dovgaluk@ispras.ru

> Cc: qemu-devel@nongnu.org; Alex Bennée

> Subject: [PATCH-for-2.9] replay/replay.c: bump REPLAY_VERSION

> 

> A previous commit (3d4d16f4) added support for audio record/playback.

> However this breaks the logfile ABI due to the re-ordering of the

> ReplayEvents enum. The REPLAY_VERSION check is meant to prevent you

> from using old log files in newer QEMUs but this is currently broken.

> 

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  replay/replay.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/replay/replay.c b/replay/replay.c

> index 78e2a7e570..9e0724e756 100644

> --- a/replay/replay.c

> +++ b/replay/replay.c

> @@ -22,7 +22,7 @@

> 

>  /* Current version of the replay mechanism.

>     Increase it when file format changes. */

> -#define REPLAY_VERSION              0xe02005

> +#define REPLAY_VERSION              0xe02006

>  /* Size of replay log header */

>  #define HEADER_SIZE                 (sizeof(uint32_t) + sizeof(uint64_t))

> 

> --

> 2.11.0
diff mbox

Patch

diff --git a/replay/replay.c b/replay/replay.c
index 78e2a7e570..9e0724e756 100644
--- a/replay/replay.c
+++ b/replay/replay.c
@@ -22,7 +22,7 @@ 
 
 /* Current version of the replay mechanism.
    Increase it when file format changes. */
-#define REPLAY_VERSION              0xe02005
+#define REPLAY_VERSION              0xe02006
 /* Size of replay log header */
 #define HEADER_SIZE                 (sizeof(uint32_t) + sizeof(uint64_t))