[Spice-devel] Tripping assertions in spice-common/common/ring.h

Nahum Shalman nshalman at elys.com
Mon Jul 23 05:49:56 PDT 2012

On 07/22/2012 02:14 PM, Yonit Halperin wrote:
> Hi,
> the trace implies some problem in the drawables tree structure. Please 
> describe in more details how you reproduce it: which web site, which 
> browser you use, what operations you execute on the web site? In 
> addition, what is the qxl driver version, and are surfaces and/or 
> caching enabled?
> What is the spice-server version? Is it a modified version?

So far I've trimmed the crash process down to:
1. Boot the Fedora 16 VM
2. Log in, icewm is the window manager.
3. Launch google-chrome
4. Open pandora.com and get some music playing (serves as a non-visual 
cue that the VM has crashed, doesn't need to be visible on-screen)
5. Open another tab and go to http://arbesman.net (make sure that the 
cross-fading images are on-screen and are cross-fading correctly 
(sometimes needs a refresh of the web page))
6. In a little while the VM will crash enough that the music stops and 
the UI becomes unresponsive (but QEMU hasn't crashed)

The spice-server is the master branch from the spice git repositories 
(as of ~July 17, I think) with two patches applied:
One is the ENOPROTOOPT patch that I just sent to the mailing list
The second is the alteration of the spice_assert macro to invoke 
spice_backtrace on errors (which enabled me to trace the crash).

The QEMU server has some modifications including that it is listening on 
a UNIX socket and a different process is listening on a TCP socket and 
passing the connection through (thus the need for the ENOPROTOOPT 
patch). None of the modifications touch the qxl device code.

I'm not sure of the qxl driver version, we may have made a small 
modification to it to alter which screen resolutions it would run, but 
it's probably relatively old.
The offscreen surfaces are disabled (they were giving us a performance 
regression with GTK applications like firefox), but the image and 
fallback caches are enabled.
Here's some of the output it placed in Xorg.0.log:
[     8.183] (II) LoadModule: "qxl"
[     8.183] (II) Loading /usr/lib64/xorg/modules/drivers/qxl_drv.so
[     8.185] (II) Module qxl: vendor="X.Org Foundation"
[     8.185] (II) qxl: Driver for QXL virtual graphics: QXL 1
[     8.201] (II) Loading /usr/lib64/xorg/modules/drivers/qxl_drv.so
[     8.201] (**) qxl(0): Depth 24, (--) framebuffer bpp 32
[     8.201] (==) qxl(0): RGB weight 888
[     8.201] (==) qxl(0): Default visual is TrueColor
[     8.201] (==) qxl(0): Using gamma correction (1.0, 1.0, 1.0)
[     8.201] (II) qxl(0): Offscreen Surfaces: Disabled
[     8.201] (II) qxl(0): Image Cache: Enabled
[     8.201] (II) qxl(0): Fallback Cache: Enabled
[     8.209] (II) qxl(0): framebuffer at 0x7f67dfcb1000 (16384 KB)
[     8.209] (II) qxl(0): command ram at 0x7f67e0cb1000 (32760 KB)
[     8.209] (II) qxl(0): vram at 0x7f67dbcb1000 (65536 KB)
[     8.209] (II) qxl(0): rom at 0x7f67e4bc9000
[     8.210] (II) qxl(0): Device version 0.0
[     8.210] (II) qxl(0): Compression level 0, log level 0
[     8.210] (II) qxl(0): 12286 io pages at 0x7f67dfcb1000
[     8.210] (II) qxl(0): RAM header offset: 0x3ffe000
[     8.210] (II) qxl(0): Correct RAM signature 41525851
[     8.210] (II) qxl(0): 49144 KB of video RAM
[     8.210] (II) qxl(0): 1024 surfaces
[     8.210] (II) qxl(0): <default monitor>: Using hsync range of 
29.00-160.00 kHz
[     8.210] (II) qxl(0): <default monitor>: Using vrefresh range of 
50.00-75.00 Hz
[     8.210] (II) qxl(0): Clock range:  10.00 to 400.00 MHz
[     8.219] (II) qxl(0): PreInit complete
[     8.219] (II) qxl(0): git commit 5fc9ef5
[     8.225] (II) qxl(0): framebuffer at 0x7f67dfcb1000 (16384 KB)
[     8.225] (II) qxl(0): command ram at 0x7f67e0cb1000 (32760 KB)
[     8.225] (II) qxl(0): vram at 0x7f67dbcb1000 (65536 KB)
[     8.225] (II) qxl(0): rom at 0x7f67e4bc9000

Let me know if you need additional details or have variations of my test 
you'd like me to try.

Thanks so much,

More information about the Spice-devel mailing list