Message ID | 20200921094830.114028-1-dovmurik@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | migration: Truncate state file in xen-save-devices-state | expand |
* 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 >
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 > > > >
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 > >
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,
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.
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; }
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(-)