Created attachment 586315 [details]
Backtrace from qemu-kvm when doing multiple resolution changes
Description of problem:
When doing resolution changes in a loop on guest, qemu-kvm process crashes with sigabrt, Sometimes I need to wait for longer time, sometimes It occurs after several resolution changes.
Following ASSERT os raised:
dev_destroy_surfaces: ASSERT !worker->surfaces[i].context.canvas failed
I am attaching bt from qemu-kvm process
Version-Release number of selected component (if applicable):
WindowsXP guest with qxl driver with off-screen surfaces support installed
100% (If you try long enough)
Steps to Reproduce:
1. Connect to a Windows guest with qxl driver installed.
2. Run resolution changes in loop
sigabrt is catch on qemu-kvm process.
Smooth resolution changes.
spice_assert(ring->next != NULL && ring->prev != NULL);
triggering in spice-server/common/ring.h
How do you do these resolution changes in a loop? Manually or do you have a tool to do that?
(In reply to comment #1)
> This is
> spice_assert(ring->next != NULL && ring->prev != NULL);
> triggering in spice-server/common/ring.h
> How do you do these resolution changes in a loop? Manually or do you have a
> tool to do that?
I am running the script from bug #578845.
Created attachment 586577 [details]
fix patch 1
Created attachment 586578 [details]
proposed fix patch 2
The bug can occur when the primary surface or all the surfaces are destroyed (e.g., resolution changes, reset, switching users).
RHEL6.4 QA ACK
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
*** Bug 863495 has been marked as a duplicate of this bug. ***