qemu-patch-raspberry4/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 migration: using trace_ to replace DPRINTF 2020-10-26 16:15:04 +00:00
block.h migration: disable auto-converge during bulk block migration 2017-09-27 11:27:14 +01:00
channel.c migration: Introduce migration_ioc_[un]register_yank() 2021-07-26 12:44:54 +01:00
channel.h migration: Route errors down through migration_channel_connect 2018-02-06 10:55:12 +00:00
colo-failover.c qemu/atomic.h: rename atomic_ to qatomic_ 2020-09-23 16:07:44 +01:00
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 migration: unify incoming processing 2018-07-10 12:48:53 +01:00
exec.h migration: Export exec.c functions in its own file 2017-06-01 18:49:22 +02:00
fd.c monitor: Use getter/setter functions for cur_mon 2020-10-09 07:08:19 +02:00
fd.h migration: Fix fd protocol for incoming defer 2019-06-05 12:43:55 +02:00
global_state.c migration: Silence compiler warning in global_state_store_running() 2020-10-02 12:28:48 +01:00
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: Add zlib compression multifd support 2020-02-28 09:24:43 +01:00
multifd-zstd.c multifd: Add zstd compression multifd support 2020-02-28 09:25:49 +01:00
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 migration/: fix some comment spelling errors 2020-09-17 20:36:32 +02:00
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 migration: Export qemu-file-channel.c functions in its own file 2017-05-18 19:20:50 +02:00
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 migration: Export rdma.c functions in its own file 2017-06-01 18:49:23 +02:00
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 migration: unify the framework of socket-type channel 2020-08-28 13:34:52 +01:00
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 migration: Fix Lesser GPL version number 2020-11-15 16:43:28 +01:00
trace-events migration/dirtyrate: implement dirty-ring dirtyrate calculation 2021-11-01 22:56:43 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vmstate-types.c migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00
vmstate.c migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00
xbzrle.c migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00
xbzrle.h migration: Create migration/xbzrle.h 2017-05-18 18:04:54 +02:00
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