We found that spice-gtk exists serious memory leak problem.

The call stack is as follow:

-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

spice_malloc(): common\mem.c
spice_malloc_n(): common\mem.c
_surface_create_stride(): common\canvas_utils.c
surface_create_stride(): common\canvas_utils.c
alloc_lz_image_surface(): common\canvas_utils.c
glz_image_new(): decode_glz.c
decode(): decode_glz.c
canvas_get_glz_rgb_common(): common\canvas_base.c
canvas_get_glz(): common\canvas_base.c
canvas_get_image_internal(): common\canvas_base.c
canvas_get_image(): common\canvas_base.c
canvas_draw_copy(): common\canvas_base.c
display_handle_draw_copy(): channel_display.c
spice_display_handle_msg(): channel_display.c

-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------

The main problem is in canvas_draw_copy(): common\canvas_base.c


src_image = canvas_get_image(canvas, copy->src_bitmap, FALSE);
......
......
pixman_image_unref(src_image);


Then the pixman goes to "static void release_data(pixman_image_t *image,
void *release_data)" in common\canvas_utils.c.

But the allocated memory does not free.


On a RHEL 6.1 server, spice-gtk display window can use 300M or more memory,
and the memory usage keep increasing.


-- 
Xu Fang
School of Computer Science and Engineering, Beihang University
State Key Laboratory of Virtual Reality Technology and Systems,
Beijing,P.R.China
Address:
    Beihang University
    Room727, NewMain Building,
    No. 35 Xueyuan Road, Haidian Distric,
    Beijing,P.R.China,100191
_______________________________________________
Spice-devel mailing list
Spice-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/spice-devel

Reply via email to