qemu-e2k/migration
Rao, Lei ac183dac96 colo: fixed 'Segmentation fault' when the simplex mode PVM poweroff
The GDB statck is as follows:
Program terminated with signal SIGSEGV, Segmentation fault.
0  object_class_dynamic_cast (class=0x55c8f5d2bf50, typename=0x55c8f2f7379e "qio-channel") at qom/object.c:832
         if (type->class->interfaces &&
[Current thread is 1 (Thread 0x7f756e97eb00 (LWP 1811577))]
(gdb) bt
0  object_class_dynamic_cast (class=0x55c8f5d2bf50, typename=0x55c8f2f7379e "qio-channel") at qom/object.c:832
1  0x000055c8f2c3dd14 in object_dynamic_cast (obj=0x55c8f543ac00, typename=0x55c8f2f7379e "qio-channel") at qom/object.c:763
2  0x000055c8f2c3ddce in object_dynamic_cast_assert (obj=0x55c8f543ac00, typename=0x55c8f2f7379e "qio-channel",
    file=0x55c8f2f73780 "migration/qemu-file-channel.c", line=117, func=0x55c8f2f73800 <__func__.18724> "channel_shutdown") at qom/object.c:786
3  0x000055c8f2bbc6ac in channel_shutdown (opaque=0x55c8f543ac00, rd=true, wr=true, errp=0x0) at migration/qemu-file-channel.c:117
4  0x000055c8f2bba56e in qemu_file_shutdown (f=0x7f7558070f50) at migration/qemu-file.c:67
5  0x000055c8f2ba5373 in migrate_fd_cancel (s=0x55c8f4ccf3f0) at migration/migration.c:1699
6  0x000055c8f2ba1992 in migration_shutdown () at migration/migration.c:187
7  0x000055c8f29a5b77 in main (argc=69, argv=0x7fff3e9e8c08, envp=0x7fff3e9e8e38) at vl.c:4512

The root cause is that we still want to shutdown the from_dst_file in
migrate_fd_cancel() after qemu_close in colo_process_checkpoint().
So, we should set the s->rp_state.from_dst_file = NULL after
qemu_close().

Signed-off-by: Lei Rao <lei.rao@intel.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
2021-11-03 09:38:53 +01:00
..
block-dirty-bitmap.c migration: block-dirty-bitmap: add missing qemu_mutex_lock_iothread 2021-10-05 13:10:29 +02:00
block.c
block.h
channel.c migration: Introduce migration_ioc_[un]register_yank() 2021-07-26 12:44:54 +01:00
channel.h
colo-failover.c
colo.c colo: fixed 'Segmentation fault' when the simplex mode PVM poweroff 2021-11-03 09:38:53 +01:00
dirtyrate.c migration/dirtyrate: implement dirty-bitmap dirtyrate calculation 2021-11-01 22:56:44 +01:00
dirtyrate.h migration/dirtyrate: introduce struct and adjust DirtyRateStat 2021-11-01 22:56:43 +01:00
exec.c
exec.h
fd.c
fd.h
global_state.c
meson.build migration: Move populate_vfio_info() into a separate file 2021-05-14 12:31:51 +02:00
migration.c Fixed SVM hang when do failover before PVM crash 2021-11-03 09:38:53 +01:00
migration.h migration: provide an error message to migration_cancel() 2021-11-03 09:38:53 +01:00
multifd-zlib.c
multifd-zstd.c
multifd.c migration: allow enabling mutilfd for specific protocol only 2021-10-19 08:39:04 +02:00
multifd.h migration: allow multifd for socket protocol only 2021-10-19 08:39:04 +02:00
page_cache.c migration: Fix cache_init()'s "Failed to allocate" error messages 2021-02-08 11:19:51 +00:00
page_cache.h migration: Clean up signed vs. unsigned XBZRLE cache-size 2021-02-08 11:19:51 +00:00
postcopy-ram.c migration: Simplify alignment and alignment checks 2021-11-01 22:56:44 +01:00
postcopy-ram.h
qemu-file-channel.c migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00
qemu-file-channel.h
qemu-file.c migration: Teach QEMUFile to be QIOChannel-aware 2021-07-26 12:44:59 +01:00
qemu-file.h migration: Teach QEMUFile to be QIOChannel-aware 2021-07-26 12:44:59 +01:00
ram.c migration: provide an error message to migration_cancel() 2021-11-03 09:38:53 +01:00
ram.h migration/postcopy: Handle RAMBlocks with a RamDiscardManager on the destination 2021-11-01 22:56:44 +01:00
rdma.c migration/rdma: Fix out of order wrid 2021-11-01 12:49:29 +01:00
rdma.h
savevm.c migration: Zero migration compression counters 2021-11-03 09:38:53 +01:00
savevm.h migration: Add blocker information 2021-02-08 11:19:51 +00:00
socket.c migration/socket: Close the listener at the end 2021-06-08 19:36:19 +01:00
socket.h
target.c migration: Move populate_vfio_info() into a separate file 2021-05-14 12:31:51 +02:00
tls.c migration/tls: Use qcrypto_tls_creds_check_endpoint() 2021-06-29 18:30:20 +01:00
tls.h
trace-events migration/dirtyrate: implement dirty-ring dirtyrate calculation 2021-11-01 22:56:43 +01:00
trace.h
vmstate-types.c
vmstate.c
xbzrle.c
xbzrle.h
yank_functions.c migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00
yank_functions.h migration: Move the yank unregister of channel_close out 2021-07-26 12:45:03 +01:00