[Spice-devel] Spice is breaking in 32 bits hosts
Alon Levy
alevy at redhat.com
Mon Mar 19 02:19:29 PDT 2012
On Mon, Mar 19, 2012 at 12:48:37AM -0300, Fabiano Fidêncio wrote:
> Guys, I've been trouble using spice-protocol/spice/qemu from git, in a
> 32 bits host.
>
> Could somone take a look in this issue?
>
> fidencio at sasha ~/src/spice $ sudo
> LD_LIBRARY_PATH=/home/fidencio/dev/lib gdb --args
> /home/fidencio/dev/bin/qemu-system-i386 -enable-kvm -m 1024 -device
> e1000,vlan=0 -net tap,script=/home/fidencio/dev/etc/qemu-ifup -vga qxl
> /home/fidencio/libvirt/images/fedora16-i686.img
> Copyright (C) 2011 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "i686-redhat-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from /home/fidencio/dev/bin/qemu-system-i386...(no
> debugging symbols found)...done.
> (gdb) r
> Starting program: /home/fidencio/dev/bin/qemu-system-i386 -enable-kvm
> -m 1024 -device e1000,vlan=0 -net
> tap,script=/home/fidencio/dev/etc/qemu-ifup -vga qxl
> /home/fidencio/libvirt/images/fedora16-i686.img
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/libthread_db.so.1".
> Detaching after fork from child process 7306.
> Bringing up interface tap0... Done
> Adding interface tap0 to bridge br0... Done
> [New Thread 0xb7edab40 (LWP 7316)]
> [New Thread 0xb76d9b40 (LWP 7317)]
> do_spice_init: starting 0.10.1
> spice_server_add_interface: SPICE_INTERFACE_QXL
> [New Thread 0xb1b8ab40 (LWP 7318)]
> red_worker_main: begin
> display_channel_create: create display channel
> cursor_channel_create: create cursor channel
> id 0, group 0, virt start 0, virt end ffffffff, generation 0, delta 0
> get_virt: panic: slot_id too big, addr=b1b8b008
>
> Program received signal SIGABRT, Aborted.
> [Switching to Thread 0xb1b8ab40 (LWP 7318)]
> 0x00133416 in __kernel_vsyscall ()
>
> (gdb) bt
> #0 0x00133416 in __kernel_vsyscall ()
> #1 0x0077d98f in __GI_raise (sig=6)
> at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
> #2 0x0077f2d5 in __GI_abort () at abort.c:91
> #3 0x00634de0 in get_virt (info=0xb1b87800, addr=2981670920, add_size=
> 1228800, group_id=0) at red_memslots.c:110
The address translation logic is probably assuming a long is 64 bits,
and needs to be fixed. The stack trace is pointing you at the right
place.. I think get_memslot_id/get_virt and all along should switch
"unsigned long" with uint64_t.
> #4 0x0064324a in dev_create_primary_surface (worker=0xb1a66030,
> surface_id=<optimized out>, surface=...) at red_worker.c:10417
> #5 0x006433fe in handle_dev_create_primary_surface (opaque=0xb1a66030,
> payload=0xb1200468) at red_worker.c:10443
> #6 0x006322bc in dispatcher_handle_single_read (dispatcher=0x80a82cd0)
> at dispatcher.c:120
> #7 dispatcher_handle_recv_read (dispatcher=0x80a82cd0) at dispatcher.c:143
> #8 0x00637636 in handle_dev_input (fd=20, event=1, opaque=0xb1a66030)
> at red_worker.c:11032
> #9 0x0064d965 in red_worker_main (arg=0xbfffeecc) at red_worker.c:11163
> #10 0x004c7cd3 in start_thread (arg=0xb1b8ab40) at pthread_create.c:309
> #11 0x00841a2e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:133
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
More information about the Spice-devel
mailing list