When running the xen-save-devices-state QMP command, if the filename
already exists it will be truncated before dumping the devices' state
into it.
Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
---
Note that I found the above issue while trying to debug
xen-load-devices-state which simply fails (prints "Configuration section
missing" to stderr) directly after xen-save-devices-state (in the same
VM). I wonder if I should file a bug report as-is or investigate some
more. Advice welcome.
-Dov
---
migration/savevm.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/migration/savevm.c b/migration/savevm.c
index 304d98ff78..e1b26672cc 100644
--- a/migration/savevm.c
+++ b/migration/savevm.c
@@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
vm_stop(RUN_STATE_SAVE_VM);
global_state_store_running();
- ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
+ ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
+ 0660, errp);
if (!ioc) {
goto the_end;
}
--
2.20.1
* Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> When running the xen-save-devices-state QMP command, if the filename
> already exists it will be truncated before dumping the devices' state
> into it.
>
> Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> ---
OK, that looks fine to me, so:
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>
> Note that I found the above issue while trying to debug
> xen-load-devices-state which simply fails (prints "Configuration section
> missing" to stderr) directly after xen-save-devices-state (in the same
> VM). I wonder if I should file a bug report as-is or investigate some
> more. Advice welcome.
I don't try the xen-* commands normally; I've cc'ing in Stefano and
Anthony.
Dave
>
> -Dov
>
> ---
> migration/savevm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/migration/savevm.c b/migration/savevm.c
> index 304d98ff78..e1b26672cc 100644
> --- a/migration/savevm.c
> +++ b/migration/savevm.c
> @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
> vm_stop(RUN_STATE_SAVE_VM);
> global_state_store_running();
>
> - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
> + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
> + 0660, errp);
> if (!ioc) {
> goto the_end;
> }
> --
> 2.20.1
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On 21/09/2020 14:17, Dr. David Alan Gilbert wrote:
> * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
>> When running the xen-save-devices-state QMP command, if the filename
>> already exists it will be truncated before dumping the devices' state
>> into it.
>>
>> Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
>> ---
>
> OK, that looks fine to me, so:
>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>
>>
>> Note that I found the above issue while trying to debug
>> xen-load-devices-state which simply fails (prints "Configuration section
>> missing" to stderr) directly after xen-save-devices-state (in the same
>> VM). I wonder if I should file a bug report as-is or investigate some
>> more. Advice welcome.
>
> I don't try the xen-* commands normally; I've cc'ing in Stefano and
> Anthony.
Thanks Dave. Just to be clear, I'm running this without Xen at all; but
these commands seem to work OK for dumping/restoring guest's devices
state (without RAM) -- if I modify the code to circumvent the mentioned
problem.
Dov
>
> Dave
>
>>
>> -Dov
>>
>> ---
>> migration/savevm.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/migration/savevm.c b/migration/savevm.c
>> index 304d98ff78..e1b26672cc 100644
>> --- a/migration/savevm.c
>> +++ b/migration/savevm.c
>> @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
>> vm_stop(RUN_STATE_SAVE_VM);
>> global_state_store_running();
>>
>> - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
>> + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
>> + 0660, errp);
>> if (!ioc) {
>> goto the_end;
>> }
>> --
>> 2.20.1
>>
* Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
>
>
> On 21/09/2020 14:17, Dr. David Alan Gilbert wrote:
> > * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> > > When running the xen-save-devices-state QMP command, if the filename
> > > already exists it will be truncated before dumping the devices' state
> > > into it.
> > >
> > > Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> > > ---
> >
> > OK, that looks fine to me, so:
> >
> > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> >
> > >
> > > Note that I found the above issue while trying to debug
> > > xen-load-devices-state which simply fails (prints "Configuration section
> > > missing" to stderr) directly after xen-save-devices-state (in the same
> > > VM). I wonder if I should file a bug report as-is or investigate some
> > > more. Advice welcome.
> >
> > I don't try the xen-* commands normally; I've cc'ing in Stefano and
> > Anthony.
>
> Thanks Dave. Just to be clear, I'm running this without Xen at all; but
> these commands seem to work OK for dumping/restoring guest's devices
> state (without RAM) -- if I modify the code to circumvent the mentioned
> problem.
Yeh, although you can't rely on them not doing something Xen in the
future. There are a few other similar ways of doing what you want; eg.
if your RAM is 'shared' then you can set the x-ignore-shared migration
capability.
Dave
> Dov
>
> >
> > Dave
> >
> > >
> > > -Dov
> > >
> > > ---
> > > migration/savevm.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/migration/savevm.c b/migration/savevm.c
> > > index 304d98ff78..e1b26672cc 100644
> > > --- a/migration/savevm.c
> > > +++ b/migration/savevm.c
> > > @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
> > > vm_stop(RUN_STATE_SAVE_VM);
> > > global_state_store_running();
> > > - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
> > > + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
> > > + 0660, errp);
> > > if (!ioc) {
> > > goto the_end;
> > > }
> > > --
> > > 2.20.1
> > >
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Adding Paul
On Mon, 21 Sep 2020, Dr. David Alan Gilbert wrote:
> * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> >
> >
> > On 21/09/2020 14:17, Dr. David Alan Gilbert wrote:
> > > * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> > > > When running the xen-save-devices-state QMP command, if the filename
> > > > already exists it will be truncated before dumping the devices' state
> > > > into it.
> > > >
> > > > Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> > > > ---
> > >
> > > OK, that looks fine to me, so:
> > >
> > > Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > >
> > > >
> > > > Note that I found the above issue while trying to debug
> > > > xen-load-devices-state which simply fails (prints "Configuration section
> > > > missing" to stderr) directly after xen-save-devices-state (in the same
> > > > VM). I wonder if I should file a bug report as-is or investigate some
> > > > more. Advice welcome.
> > >
> > > I don't try the xen-* commands normally; I've cc'ing in Stefano and
> > > Anthony.
> >
> > Thanks Dave. Just to be clear, I'm running this without Xen at all; but
> > these commands seem to work OK for dumping/restoring guest's devices
> > state (without RAM) -- if I modify the code to circumvent the mentioned
> > problem.
>
> Yeh, although you can't rely on them not doing something Xen in the
> future. There are a few other similar ways of doing what you want; eg.
> if your RAM is 'shared' then you can set the x-ignore-shared migration
> capability.
>
> Dave
>
> > Dov
> >
> > >
> > > Dave
> > >
> > > >
> > > > -Dov
> > > >
> > > > ---
> > > > migration/savevm.c | 3 ++-
> > > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > > >
> > > > diff --git a/migration/savevm.c b/migration/savevm.c
> > > > index 304d98ff78..e1b26672cc 100644
> > > > --- a/migration/savevm.c
> > > > +++ b/migration/savevm.c
> > > > @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
> > > > vm_stop(RUN_STATE_SAVE_VM);
> > > > global_state_store_running();
> > > > - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
> > > > + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
> > > > + 0660, errp);
> > > > if (!ioc) {
> > > > goto the_end;
> > > > }
> > > > --
> > > > 2.20.1
> > > >
> >
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
* Dr. David Alan Gilbert (dgilbert@redhat.com) wrote:
> * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> > When running the xen-save-devices-state QMP command, if the filename
> > already exists it will be truncated before dumping the devices' state
> > into it.
> >
> > Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> > ---
>
> OK, that looks fine to me, so:
>
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Queued
> >
> > Note that I found the above issue while trying to debug
> > xen-load-devices-state which simply fails (prints "Configuration section
> > missing" to stderr) directly after xen-save-devices-state (in the same
> > VM). I wonder if I should file a bug report as-is or investigate some
> > more. Advice welcome.
>
> I don't try the xen-* commands normally; I've cc'ing in Stefano and
> Anthony.
>
> Dave
>
> >
> > -Dov
> >
> > ---
> > migration/savevm.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/migration/savevm.c b/migration/savevm.c
> > index 304d98ff78..e1b26672cc 100644
> > --- a/migration/savevm.c
> > +++ b/migration/savevm.c
> > @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
> > vm_stop(RUN_STATE_SAVE_VM);
> > global_state_store_running();
> >
> > - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
> > + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
> > + 0660, errp);
> > if (!ioc) {
> > goto the_end;
> > }
> > --
> > 2.20.1
> >
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
>
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
On Mon, Sep 21, 2020 at 12:17:23PM +0100, Dr. David Alan Gilbert wrote:
> * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> > When running the xen-save-devices-state QMP command, if the filename
> > already exists it will be truncated before dumping the devices' state
> > into it.
> >
> > Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> > ---
> > migration/savevm.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/migration/savevm.c b/migration/savevm.c
> > index 304d98ff78..e1b26672cc 100644
> > --- a/migration/savevm.c
> > +++ b/migration/savevm.c
> > @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
> > vm_stop(RUN_STATE_SAVE_VM);
> > global_state_store_running();
> >
> > - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
> > + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
> > + 0660, errp);
> > if (!ioc) {
> > goto the_end;
> > }
Hi Marek,
Do you know if the above patch is going to work in a linux stubdomain?
Can we truncate the "save file" which seems to be stubdomain's console 1?
Cheers,
--
Anthony PERARD
On Mon, Sep 28, 2020 at 05:46:18PM +0100, Anthony PERARD wrote:
> On Mon, Sep 21, 2020 at 12:17:23PM +0100, Dr. David Alan Gilbert wrote:
> > * Dov Murik (dovmurik@linux.vnet.ibm.com) wrote:
> > > When running the xen-save-devices-state QMP command, if the filename
> > > already exists it will be truncated before dumping the devices' state
> > > into it.
> > >
> > > Signed-off-by: Dov Murik <dovmurik@linux.vnet.ibm.com>
> > > ---
> > > migration/savevm.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/migration/savevm.c b/migration/savevm.c
> > > index 304d98ff78..e1b26672cc 100644
> > > --- a/migration/savevm.c
> > > +++ b/migration/savevm.c
> > > @@ -2803,7 +2803,8 @@ void qmp_xen_save_devices_state(const char *filename, bool has_live, bool live,
> > > vm_stop(RUN_STATE_SAVE_VM);
> > > global_state_store_running();
> > >
> > > - ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT, 0660, errp);
> > > + ioc = qio_channel_file_new_path(filename, O_WRONLY | O_CREAT | O_TRUNC,
> > > + 0660, errp);
> > > if (!ioc) {
> > > goto the_end;
> > > }
>
> Hi Marek,
>
> Do you know if the above patch is going to work in a linux stubdomain?
> Can we truncate the "save file" which seems to be stubdomain's console 1?
No, truncate won't work on the stubdomain's console. I mean, the
operation won't fail, but the actual file connected to the console on
the other end won't get truncated. But I think in case of stubdomain,
toolstack should connect the console to an empty file, so it shouldn't
be a problem.
--
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
© 2016 - 2026 Red Hat, Inc.