"Rao, Lei" <lei....@intel.com> wrote: > From: "Rao, Lei" <lei....@intel.com> > > 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....@intel.com>
Reviewed-by: Juan Quintela <quint...@redhat.com> queued