Package: python3-pymupdf
Version: 1.25.0+ds1-2
Severity: serious

Hi,

the autopkgtest of pymupdf currently segfaults on arm64, ppc64el and
riscv64. In an attempt to get to the bottom of this I found a minimal
reproducer:

python3 -c "import pymupdf,sys; doc=pymupdf,sys; 
doc=pymupdf.open(sys.argv[1]);doc[0].get_text()" 
/usr/share/doc/fig2dev/manual.pdf

Which pdf document is opened seems to be irrelevant. It crashed for any that I
tried. This makes this bug RC, I think.

I can reproduce the problem in a minimal Debian unstable chroot:

mmdebstrap 
--include=python3-pymupdf,python3-pymupdf-dbgsym,libmupdf25.1-dbgsym,gdb,fig2dev
 --customize-hook='env SHELL=/bin/sh chroot "$1" gdb -batch -ex "set logging 
enabled on" -ex "set pagination off" -ex run -ex "bt full" -ex quit --args 
python3 -c "import pymupdf,sys; doc=pymupdf,sys; 
doc=pymupdf.open(sys.argv[1]);doc[0].get_text()" 
/usr/share/doc/fig2dev/manual.pdf' unstable /dev/null 
http://deb.debian.org/debian "deb http://deb.debian.org/debian-debug 
unstable-debug main"
[...]
Program received signal SIGSEGV, Segmentation fault.
0x0000fffff2d13ce8 in mupdf::FzStextPageIterator::FzStextPageIterator 
(this=0xfffff74b5e6c, item=...) at platform/c++/implementation/classes.cpp:22939
warning: 22939  platform/c++/implementation/classes.cpp: No such file or 
directory
#0  0x0000fffff2d13ce8 in mupdf::FzStextPageIterator::FzStextPageIterator 
(this=0xfffff74b5e6c, item=...) at platform/c++/implementation/classes.cpp:22939
No locals.
#1  0x0000fffff2d13d3c in mupdf::FzStextPage::begin (this=this@entry=0x11dd690) 
at platform/c++/implementation/classes.cpp:22868
        ret = {m_item = {m_internal = 0x6665727800000000, static 
s_num_instances = 1}}
#2  0x0000fffff74ad020 in JM_print_stext_page_as_text (res=..., page=...) at 
./src/build/extra.i.cpp:5570
        block = {m_internal = 0xfffff7fe6420}
        __for_range = @0x11dd690: {m_internal = 0x1196ea8}
        __for_begin = {m_item = {m_internal = 0xfffff7fe6430}}
        __for_end = {m_item = {m_internal = 0xffffffffe7c0}}
        rect = {x0 = <optimized out>, y0 = 0, x1 = <optimized out>, y1 = 792}
#3  0x0000fffff74ad320 in _wrap_JM_print_stext_page_as_text (self=<optimized 
out>, args=<optimized out>) at ./src/build/extra.i.cpp:10767
        fail = <optimized out>
        resultobj = 0x0
        arg1 = 0x11dd560
        arg2 = <optimized out>
        argp1 = 0x11dd560
        res1 = <optimized out>
        argp2 = 0x11dd690
        res2 = <optimized out>
        swig_obj = {0xfffff196af90, 0xfffff196b380}
#4  0x00000000004e924c in ?? ()
No symbol table info available.
#5  0x00000000004a3dc0 in _PyObject_MakeTpCall ()
No symbol table info available.
#6  0x00000000004c1fd4 in _PyEval_EvalFrameDefault ()
No symbol table info available.
#7  0x00000000005d2040 in PyEval_EvalCode ()
No symbol table info available.
#8  0x00000000005fd91c in ?? ()
No symbol table info available.
#9  0x00000000005f7e70 in ?? ()
No symbol table info available.
#10 0x00000000005e6094 in ?? ()
No symbol table info available.
#11 0x00000000005e5e1c in ?? ()
No symbol table info available.
#12 0x00000000006229f8 in Py_RunMain ()
No symbol table info available.
#13 0x00000000005bc188 in Py_BytesMain ()
No symbol table info available.
#14 0x0000fffff7ce229c in ?? () from /lib/aarch64-linux-gnu/libc.so.6
No symbol table info available.
#15 0x0000fffff7ce237c in __libc_start_main () from 
/lib/aarch64-linux-gnu/libc.so.6
No symbol table info available.
#16 0x00000000005badb0 in _start ()
No symbol table info available.
A debugging session is active.

        Inferior 1 [process 4068] will be killed.


Any idea what could be going on?

Thanks!

cheers, josch

Reply via email to