Package: mypaint Version: 2.0.1-10+b2 Severity: important Dear Maintainer,
mypaint does not seem to work on (at least some) aarch64/arm64 systems. It segfaults in PyObject after attempting to paint a stroke (i.e. just clicking in the default canvas after startup crashes the program). My platform is MNT Reform with Rockchip RK3588, but it was also reported crashing on NXP i.MX8MPlus. Here is a gdb full backtrace: (gdb) bt full #0 0x00000000004ff798 in _PyInterpreterState_GET () at ../Include/internal/pycore_pystate.h:133 tstate = <optimized out> interp = <optimized out> state = <optimized out> ptr = <optimized out> #1 get_state () at ../Objects/obmalloc.c:866 interp = <optimized out> state = <optimized out> ptr = <optimized out> #2 _PyObject_Malloc (nbytes=56, ctx=0x0) at ../Objects/obmalloc.c:1563 state = <optimized out> ptr = <optimized out> #3 PyObject_Malloc (size=56) at ../Objects/obmalloc.c:801 #4 0x0000000000520c08 in PyUnicode_New (maxchar=127, size=15) at ../Objects/unicodeobject.c:1251 obj = <optimized out> unicode = <optimized out> data = <optimized out> kind = 1 is_ascii = 1 struct_size = 40 char_size = 1 starts = 0xfffff50b98c8 "_get_tile_numpy" end = 0xfffff50b98d7 "" u = <optimized out> writer = {buffer = 0x0, data = 0x0, kind = 0, maxchar = 0, size = 281473890436336, pos = 5232112, min_length = 281473890436960, min_char = 0, overallocate = 0 '\000', readonly = 0 '\000'} startinpos = 0 endinpos = 0 errmsg = <optimized out> error_handler_obj = 0x0 exc = 0x0 #5 unicode_decode_utf8 (s=<optimized out>, size=15, error_handler=error_handler@entry=_Py_ERROR_UNKNOWN, errors=errors@entry=0x0, consumed=consumed@entry=0x0) at ../Objects/unicodeobject.c:4693 starts = 0xfffff50b98c8 "_get_tile_numpy" end = 0xfffff50b98d7 "" u = <optimized out> writer = {buffer = 0x0, data = 0x0, kind = 0, maxchar = 0, size = 281473890436336, pos = 5232112, min_length = 281473890436960, min_char = 0, overalloca--Type <RET> for more, q to quit, c to continue without paging-- te = 0 '\000', readonly = 0 '\000'} startinpos = 0 endinpos = 0 errmsg = <optimized out> error_handler_obj = 0x0 exc = 0x0 #6 0x0000000000520b9c in PyUnicode_DecodeUTF8Stateful (consumed=0x0, errors=0x0, size=<optimized out>, s=<optimized out>) at ../Objects/unicodeobject.c:4826 size = <optimized out> #7 0x00000000004fd5f0 in PyObject_GetAttrString (v=0xffffdfb1b500, name=<optimized out>) at ../Objects/object.c:918 w = <optimized out> res = <optimized out> #8 0x00000000004bfe18 in _PyObject_CallMethod_SizeT (obj=<optimized out>, name=<optimized out>, format=0xfffff50b98c0 "(iii)") at ../Objects/call.c:755 tstate = 0x0 callable = <optimized out> va = {__stack = 0x0, __gr_top = 0xffffbf40c5e0, __vr_top = 0xfffff7d20558 <arena_get2+840>, __gr_offs = -136118000, __vr_offs = 65535} retval = <optimized out> #9 0x0000fffff5072b00 in tile_request_start(MyPaintTiledSurface2*, MyPaintTileRequest*) (tiled_surface=0x19dfbc0, request=0xffffbf40c760) at lib/pythontiledsurface.cpp:41 self = 0x19dfbc0 readonly = 0 tx = 1 ty = 5 rgba = 0x0 #10 0x0000fffff501f028 in process_tile_internal (tiled_surface=tiled_surface@entry=0x19dfbc0, request_start=0xfffff501e640 <tsf2_request_start>, request_end=0xfffff501e650 <tsf2_request_end>, op_queue=0x19dfc90, tx=1, ty=5) at mypaint-tiled-surface.c:512 tile_index = {x = 1, y = 5} op = 0x2ca05e0 request_data = {tx = 1, ty = 5, readonly = 0, buffer = 0x0, context = 0x0, thread_id = 3, mipmap_level = 0} mipmap_level = 0 rgba_p = <optimized out> mask = {0 <repeats 4220 times>, 59584, 48960, 65535, 0} #11 0x0000fffff5020780 in tiled_surface2_process_tile (self=self@entry=0x19dfbc0, tx=<optimized out>, ty=<optimized out>) at mypaint-tiled-surface.c:892 #12 0x0000fffff5020808 in mypaint_tiled_surface2_end_atomic._omp_fn.0 () at mypaint-tiled-surface.c:1156 self = <optimized out> tiles = 0x19e0970 tiles_n = <optimized out> --Type <RET> for more, q to quit, c to continue without paging-- tiles = 0xfffff4f3ed8c <gomp_thread_start+300> tiles_n = <optimized out> #13 0x0000fffff4f3ed8c in gomp_thread_start (xdata=<optimized out>) at ../../../src/libgomp/team.c:129 team = 0x22ee340 task = 0x22eeb20 data = <optimized out> local_fn = 0xfffff5020780 <mypaint_tiled_surface2_end_atomic._omp_fn.0> local_data = <optimized out> #14 0x0000fffff7d12fbc in start_thread (arg=0xfffff7ff5e40) at ./nptl/pthread_create.c:444 ret = <optimized out> pd = 0xfffff7ff5e40 unwind_buf = {cancel_jmp_buf = {{jmp_buf = {281473890447744, 281473890447744, 48, 281474842451520, 281474839424256, 11, 281473881997312, 281473890447744, 281473881997312, 0, 281473890445840, 10575254300997217827, 0, 10575254302212598063, 0, 0, 0, 0, 0, 0, 0, 0}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}} not_first_call = 0 #15 0x0000fffff7d7e5cc in thread_start () at ../sysdeps/unix/sysv/linux/aarch64/clone3.S:76 (gdb) -- System Information: Debian Release: trixie/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: arm64 (aarch64) Foreign Architectures: i386, armhf, amd64 Kernel: Linux 6.9.7-mnt-reform-arm64 (SMP w/8 CPU threads) Kernel taint flags: TAINT_CRAP, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages mypaint depends on: ii gir1.2-gtk-3.0 3.24.43-1 ii libc6 2.38-11 ii libgcc-s1 14.1.0-4 ii libgdk-pixbuf-2.0-0 2.42.12+dfsg-1 ii libgomp1 14.1.0-4 ii liblcms2-2 2.14-2+b1 ii libmypaint-1.5-1 1.6.0-2 ii libpng16-16t64 1.6.43-5 ii librsvg2-bin 2.58.0+dfsg-1 ii libstdc++6 14.1.0-4 ii mypaint-brushes 2.0.2+ds1-1 ii mypaint-data 2.0.1-10 ii python3 3.12.3-1 ii python3-gi 3.48.2-1 ii python3-gi-cairo 3.48.2-1 ii python3-numpy 1:1.26.4+ds-10+b1 Versions of packages mypaint recommends: ii mypaint-data-extras 2.0.1-10 ii shared-mime-info 2.4-1 mypaint suggests no packages. -- no debconf information