Bug 94192

Summary: spice server crashes when not using qxl
Product: Spice Reporter: Lukas Venhoda <lvenhoda>
Component: serverAssignee: Spice Bug List <spice-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Script used to run QEMU

Description Lukas Venhoda 2016-02-17 15:40:42 UTC
Created attachment 121809 [details]
Script used to run QEMU

When running qemu with upstream spice server, and without qxl enabled, qemu crashes. The crash was introduced with commit 1f210080609f2c00b4d1859eb0b363a38 "Remove use of global 'reds' from AgentMsgFilter" in spice server, specifically this part:

reds->agent_state.write_filter.use_client_monitors_config=
     reds_use_client_monitors_config(reds);
reds->agent_state.read_filter.use_client_monitors_config =
     reds_use_client_monitors_config(reds);

The crash happens in function dpy_ui_info_supported() from qemu ui/console.c, because QemuConsole *con == NULL.

The issue might be connected to commit aadb94557011af2466dd7e678a1de45415ce424a "Remove global 'dispatchers', 'num_active_workers' variables"

Callstack:
dpy_ui_info_supported(), qemu ui/console.c
interface_client_monitors_config(), qemu ui/spice-display.c
red_dispatcher_use_client_monitors_config(), spice server/red-dispatcher.c
reds_use_client_monitors_config(), spice server/reds.c

Script for runnign QEMU attached
Comment 1 Lukas Venhoda 2016-02-17 15:49:56 UTC
Even this causes the crash:
export LD_PRELOAD="/home/lvenhoda/jhbuild/src/spice/server/.libs/libspice-server.so"
qemu-system-x86_64 -spice disable-ticketing,port=5900

While this doesn't:
export LD_PRELOAD="/home/lvenhoda/jhbuild/src/spice/server/.libs/libspice-server.so"
qemu-system-x86_64 -spice disable-ticketing,port=5900 -vga qxl
Comment 2 Frediano Ziglio 2016-02-19 10:08:17 UTC
Fixed in last master version.

Thanks for prompt report.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.