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