Bug#721453: [gir1.2-clutter-1.0] Clutter.Image.set_data() fails or crash for big images
Jerome Flesch
jflesch at gmail.com
Sat Aug 31 18:12:13 UTC 2013
Package: gir1.2-clutter-1.0
Version: 1.14.4-3
Severity: important
--- Please enter the report below this line. ---
I'm currently working on a personnal projet (
https://github.com/jflesch/paperwork/#readme ) and I'm planning on using
Clutter to make some animations. However, my program deals often with
big images (about 2500x3500px each), and it seems there is currently a
problem with the support of big images in Clutter in Debian testing and
unstable.
Here are 2 test programs (one using GtkClutter and the other one using
just Clutter):
- http://jflesch.kwain.net/~jflesch/clutter_crash/test_gtk.py
- http://jflesch.kwain.net/~jflesch/clutter_crash/test_nogtk.py
(you must specify the image to display as argument)
They are based on the documentation example (but without the interactive
part):
https://developer.gnome.org/clutter/stable/ClutterImage.html#ClutterImage.description
And here are test data:
- http://jflesch.kwain.net/~jflesch/clutter_crash/paper.1.thumb.jpg
(small image)
- http://jflesch.kwain.net/~jflesch/clutter_crash/paper.1.jpg (big image)
The results are as follow:
- Debian stable (gir1.2-clutter 1.10.8-2) + Nvidia : OK
- Debian stable (gir1.2-clutter 1.10.8-2) + Virtualbox : OK
- Debian testing (gir1.2-clutter 1.14.4-2) + Virtualbox: Works with the
small image, but displays a black rectangle instead of the big image
- Debian unstable (gir1.2-clutter 1.14.4-3) + Virtualbox : Works with
the small image, but displays a black rectangle instead of the big image
- Debian unstable (gir1.2-clutter 1.14.4-3) + Intel : Works with the
small image, but segfaults with the big one. The segfault occur on the
call to Clutter.Image.set_data()
- Fedora 19 (clutter 1.14.4) + Nvidia: OK
(tested only on amd64 arch)
Here is the stacktrace when it segfaults:
###
Program received signal SIGSEGV, Segmentation fault.
cogl_object_unref (obj=0x0) at ./cogl-object.c:103
103 ./cogl-object.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0 cogl_object_unref (obj=0x0) at ./cogl-object.c:103
#1 0x00007fffecc136b5 in _cogl_atlas_texture_free (atlas_tex=0x1f8b330)
at ./cogl-atlas-texture.c:279
#2 _cogl_object_atlas_texture_indirect_free (obj=0x1f8b330) at
./cogl-atlas-texture.c:53
#3 0x00007fffecc13d8d in _cogl_atlas_texture_new_from_bitmap
(bmp=bmp at entry=0xd21880, flags=flags at entry=COGL_TEXTURE_NONE,
internal_format=<optimized out>,
internal_format at entry=COGL_PIXEL_FORMAT_ANY,
error=error at entry=0x7fffffffd628) at ./cogl-atlas-texture.c:847
#4 0x00007fffecc0dccf in _cogl_texture_new_from_bitmap
(bitmap=bitmap at entry=0xd21880, flags=flags at entry=COGL_TEXTURE_NONE,
internal_format=internal_format at entry=COGL_PIXEL_FORMAT_ANY,
error=error at entry=0x7fffffffd688) at ./cogl-auto-texture.c:176
#5 0x00007fffecc0de92 in _cogl_texture_new_from_data
(error=0x7fffffffd688, data=0x7fffe5f98010 "", rowstride=<optimized out>,
internal_format=COGL_PIXEL_FORMAT_ANY,
format=COGL_PIXEL_FORMAT_RGB_888, flags=COGL_TEXTURE_NONE, height=3510,
width=2487, ctx=0xf55d00)
at ./cogl-auto-texture.c:131
#6 cogl_texture_new_from_data (width=width at entry=2487,
height=height at entry=3510, flags=flags at entry=COGL_TEXTURE_NONE,
format=format at entry=COGL_PIXEL_FORMAT_RGB_888,
internal_format=internal_format at entry=COGL_PIXEL_FORMAT_ANY,
rowstride=rowstride at entry=7464,
data=data at entry=0x7fffe5f98010 "") at ./cogl-auto-texture.c:152
#7 0x00007fffed0d716a in clutter_image_set_data (image=0xa1d790,
data=0x7fffe5f98010 "", pixel_format=COGL_PIXEL_FORMAT_RGB_888, width=2487,
height=3510, row_stride=7464, error=0x7fffffffd960) at
./clutter-image.c:238
#8 0x00007ffff5854e28 in ffi_call_unix64 () from
/usr/lib/x86_64-linux-gnu/libffi.so.6
#9 0x00007ffff5854790 in ffi_call () from
/usr/lib/x86_64-linux-gnu/libffi.so.6
#10 0x00007ffff691c704 in g_callable_info_invoke () from
/usr/lib/libgirepository-1.0.so.1
#11 0x00007ffff691da6b in g_function_info_invoke () from
/usr/lib/libgirepository-1.0.so.1
#12 0x00007ffff6b5933f in ?? () from
/usr/lib/python2.7/dist-packages/gi/_gi.so
#13 0x0000000000475198 in ext_do_call (nk=<optimized out>, na=<optimized
out>, flags=<optimized out>, pp_stack=0x7fffffffdce0,
func=<built-in method invoke of gi.FunctionInfo object at remote
0x1f27170>) at ../Python/ceval.c:4331
#14 PyEval_EvalFrameEx
(...)
(the remaining elements of the stacktrace are from the Python interpreter)
###
--- System information. ---
Architecture: amd64
Kernel: Linux 3.10-2-amd64
Debian Release: jessie/sid
500 unstable www.deb-multimedia.org
500 unstable ftp.debian.org
500 unstable debian.proxad.net
500 stable repository.spotify.com
--- Package information. ---
Depends (Version) | Installed
=====================================-+-=============
gir1.2-atk-1.0 | 2.8.0-2
gir1.2-cogl-1.0 | 1.14.0-3
gir1.2-coglpango-1.0 | 1.14.0-3
gir1.2-freedesktop | 1.36.0-2+b1
gir1.2-glib-2.0 | 1.36.0-2+b1
gir1.2-gtk-3.0 | 3.8.2-3
gir1.2-json-1.0 | 0.16.0-1
libclutter-1.0-0 (>= 1.13.10) | 1.14.4-3
Package's Recommends field is empty.
Package's Suggests field is empty.
More information about the pkg-gnome-maintainers
mailing list