[Spice-devel] Postcopy+spice crash

Gerd Hoffmann kraxel at redhat.com
Mon Dec 5 08:33:03 UTC 2016


On Fr, 2016-12-02 at 17:44 +0000, Dr. David Alan Gilbert wrote:
> Hi Gerd,
>   I've got a moderately repeatable crash with spice playing
> a video + postcopy.  Some of the time I just get a warning
> (that I also get in precopy) but sometimes it turns into
> a backtrace;
> 
> This is:
>   f24 guest playing youtube fullscreen.
>   migration between 2.7.0<->current head (had crash both ways)
> 
> The warning I get with precopy most of the time is:
>   ./x86_64-softmmu/qemu-system-x86_64:26921): Spice-Warning **: red_memslots.c:94:validate_virt: virtual address out of range

That is in spice-server.  Which version do you run?
Adding spice-devel to Cc:

>     virt=0x7f5397ed002a+0x2925ff31 slot_id=1 group_id=1
>     slot=0x7f5397c00000-0x7f539bbfe000 delta=0x7f5397c00000

Base address looks sane.
Size (0x2925ff31) is bogous.

On a quick glance I'd blame the guest for sending corrupted commands.
Strange though that it happens on migration only, so there could be
a host issue too.  Or a timing issue triggered by migration.

Which migration phase?

Do you have seamless spice migration enabled?
If so: Does it still reproduce with seamless migration turned off?

> The crash I've had with postcopy is:
> red_dispatcher_loadvm_commands:
> id 0, group 0, virt start 0, virt end ffffffffffffffff, generation 0, delta 0
> id 1, group 1, virt start 7fbe83c00000, virt end 7fbe87bfe000, generation 0, delta 7fbe83c00000
> id 2, group 1, virt start 7fbe7fa00000, virt end 7fbe83a00000, generation 0, delta 7fbe7fa00000
> (./x86_64-softmmu/qemu-system-x86_64:22376): Spice-CRITICAL **: red_memslots.c:123:get_virt: slot_id 128 too big, addr=8000000000000000
> 
> #0  0x00007fc0aa42f49d in read () from /lib64/libpthread.so.0
> #1  0x00007fc0a8c36c01 in spice_backtrace_gstack () from /lib64/libspice-server.so.1
> #2  0x00007fc0a8c3e4f7 in spice_logv () from /lib64/libspice-server.so.1
> #3  0x00007fc0a8c3e655 in spice_log () from /lib64/libspice-server.so.1
> #4  0x00007fc0a8bfc6de in get_virt () from /lib64/libspice-server.so.1
> #5  0x00007fc0a8bfcb73 in red_get_data_chunks_ptr () from /lib64/libspice-server.so.1
> #6  0x00007fc0a8bff3fa in red_get_cursor_cmd () from /lib64/libspice-server.so.1
> #7  0x00007fc0a8c0fd79 in handle_dev_loadvm_commands () from /lib64/libspice-server.so.1
> #8  0x00007fc0a8bf9523 in dispatcher_handle_recv_read () from /lib64/libspice-server.so.1
> #9  0x00007fc0a8c1d5a5 in red_worker_main () from /lib64/libspice-server.so.1
> #10 0x00007fc0aa428dc5 in start_thread () from /lib64/libpthread.so.0
> #11 0x00007fc0a61786ed in clone () from /lib64/libc.so.6

Spice worker thread ...

> red_dispatcher_loadvm_commands:
> id 0, group 0, virt start 0, virt end ffffffffffffffff, generation 0, delta 0
> id 1, group 1, virt start 7f3b93800000, virt end 7f3b977fe000, generation 0, delta 7f3b93800000
> id 2, group 1, virt start 7f3b8f400000, virt end 7f3b93400000, generation 0, delta 7f3b8f400000
> (/opt/qemu/v2.7.0/bin/qemu-system-x86_64:41053): Spice-CRITICAL **: red_memslots.c:123:get_virt: slot_id 80 too big, addr=5000000000000000


... trying to decode a invalid qxl address.

> I'm using:
> spice-server-devel-0.12.4-19.el7.x86_64

Ah, RHEL-7.3 host.

cheers,
  Gerd



More information about the Spice-devel mailing list