WeasyPrint icon indicating copy to clipboard operation
WeasyPrint copied to clipboard

Segfault when running with 3.14 no-GIL

Open clin1234 opened this issue 6 months ago • 1 comments

(venv) cc@pretty:~$ venv/bin/weasyprint 
<frozen importlib._bootstrap>:491: RuntimeWarning: The global interpreter lock (GIL) has been enabled to load module '_cffi_backend', which has not declared that it can run safely without the GIL. To override this behavior and keep the GIL disabled (at your own risk), run with PYTHON_GIL=0 or -Xgil=0.
Segmentation fault (core dumped)

(venv) cc@pretty:~$ coredumpctl gdb
           PID: 2714192 (weasyprint)
           UID: 1000 (cc)
           GID: 1000 (cc)
        Signal: 11 (SEGV)
     Timestamp: Thu 2025-06-05 21:40:54 EDT (8s ago)
  Command Line: /home/cc/venv/bin/python3.14t venv/bin/weasyprint
    Executable: /usr/bin/python3.14t
 Control Group: /user.slice/user-1000.slice/[email protected]/app.slice/flatpak-session-helper.service
          Unit: [email protected]
     User Unit: flatpak-session-helper.service
         Slice: user-1000.slice
     Owner UID: 1000 (cc)
       Boot ID: f5c514da45984bbfa9b99bf938d5ecc9
    Machine ID: 58dfa2bab68640acb8828fbc7970aa05
      Hostname: pretty
       Storage: /var/lib/systemd/coredump/core.weasyprint.1000.f5c514da45984bbfa9b99bf938d5ecc9.2714192.1749174054000000.zst (present)
  Size on Disk: 4.6M
       Package: python3.14/3.14.0~b2-1.fc43
      build-id: fa2d9fe3855f6566dc8946a23fb697245fb23fb6
       Message: Process 2714192 (weasyprint) of user 1000 dumped core.
                
                Module /usr/bin/python3.14t from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module select.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _posixsubprocess.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libffi.so.8 from rpm libffi-3.4.8-1.fc43.x86_64
                Module _cffi_backend.cpython-314t-x86_64-linux-gnu.so without build-id.
                Module _random.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libzstd.so.1 from rpm zstd-1.5.7-1.fc43.x86_64
                Module _zstd.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module liblzma.so.5 from rpm xz-5.8.1-1.fc43.x86_64
                Module _lzma.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libbz2.so.1 from rpm bzip2-1.0.8-20.fc42.x86_64
                Module _bz2.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libssl.so.3 from rpm openssl-3.5.0-3.fc43.x86_64
                Module _ssl.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _socket.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _blake2.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libcrypto.so.3 from rpm openssl-3.5.0-3.fc43.x86_64
                Module _hashlib.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module binascii.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _struct.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libz.so.1 from rpm zlib-ng-2.2.4-2.fc43.x86_64
                Module zlib.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libexpat.so.1 from rpm expat-2.7.1-1.fc43.x86_64
                Module pyexpat.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _elementtree.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _bisect.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module math.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module fcntl.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module grp.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module _datetime.cpython-314t-x86_64-linux-gnu.so from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Module libpython3.14t.so.1.0 from rpm python3.14-3.14.0~b2-1.fc43.x86_64
                Stack trace of thread 2714192:
                #0  0x00007f5b1441dc75 b_load_library (_cffi_backend.cpython-314t-x86_64-linux-gnu.so + 0x6c75)
                #1  0x00007f5b22f684d0 cfunction_call.lto_priv.0 (libpython3.14t.so.1.0 + 0x1684d0)
                #2  0x00007f5b22f2610c _PyObject_MakeTpCall (libpython3.14t.so.1.0 + 0x12610c)
                #3  0x00007f5b22f41436 _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x141436)
                #4  0x00007f5b22f3af77 _PyEval_Vector (libpython3.14t.so.1.0 + 0x13af77)
                #5  0x00007f5b2301744f PyEval_EvalCode (libpython3.14t.so.1.0 + 0x21744f)
                #6  0x00007f5b2303cf56 builtin_exec.lto_priv.0 (libpython3.14t.so.1.0 + 0x23cf56)
                #7  0x00007f5b22f445ed _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x1445ed)
                #8  0x00007f5b22f76481 _PyFunction_Vectorcall (libpython3.14t.so.1.0 + 0x176481)
                #9  0x00007f5b22f68106 object_vacall.lto_priv.0 (libpython3.14t.so.1.0 + 0x168106)
                #10 0x00007f5b22fa28ca PyObject_CallMethodObjArgs (libpython3.14t.so.1.0 + 0x1a28ca)
                #11 0x00007f5b22fa1f51 PyImport_ImportModuleLevelObject (libpython3.14t.so.1.0 + 0x1a1f51)
                #12 0x00007f5b23018619 _PyEval_ImportName (libpython3.14t.so.1.0 + 0x218619)
                #13 0x00007f5b22f47de4 _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x147de4)
                #14 0x00007f5b22f3af77 _PyEval_Vector (libpython3.14t.so.1.0 + 0x13af77)
                #15 0x00007f5b2301744f PyEval_EvalCode (libpython3.14t.so.1.0 + 0x21744f)
                #16 0x00007f5b2303cf56 builtin_exec.lto_priv.0 (libpython3.14t.so.1.0 + 0x23cf56)
                #17 0x00007f5b22f445ed _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x1445ed)
                #18 0x00007f5b22f76481 _PyFunction_Vectorcall (libpython3.14t.so.1.0 + 0x176481)
                #19 0x00007f5b22f68106 object_vacall.lto_priv.0 (libpython3.14t.so.1.0 + 0x168106)
                #20 0x00007f5b22fa28ca PyObject_CallMethodObjArgs (libpython3.14t.so.1.0 + 0x1a28ca)
                #21 0x00007f5b22fa1f51 PyImport_ImportModuleLevelObject (libpython3.14t.so.1.0 + 0x1a1f51)
                #22 0x00007f5b23018619 _PyEval_ImportName (libpython3.14t.so.1.0 + 0x218619)
                #23 0x00007f5b22f47de4 _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x147de4)
                #24 0x00007f5b22f3af77 _PyEval_Vector (libpython3.14t.so.1.0 + 0x13af77)
                #25 0x00007f5b2301744f PyEval_EvalCode (libpython3.14t.so.1.0 + 0x21744f)
                #26 0x00007f5b2303cf56 builtin_exec.lto_priv.0 (libpython3.14t.so.1.0 + 0x23cf56)
                #27 0x00007f5b22f445ed _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x1445ed)
                #28 0x00007f5b22f76481 _PyFunction_Vectorcall (libpython3.14t.so.1.0 + 0x176481)
                #29 0x00007f5b22f68106 object_vacall.lto_priv.0 (libpython3.14t.so.1.0 + 0x168106)
                #30 0x00007f5b22fa28ca PyObject_CallMethodObjArgs (libpython3.14t.so.1.0 + 0x1a28ca)
                #31 0x00007f5b22fa1f51 PyImport_ImportModuleLevelObject (libpython3.14t.so.1.0 + 0x1a1f51)
                #32 0x00007f5b23018619 _PyEval_ImportName (libpython3.14t.so.1.0 + 0x218619)
                #33 0x00007f5b22f47de4 _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x147de4)
                #34 0x00007f5b22f3af77 _PyEval_Vector (libpython3.14t.so.1.0 + 0x13af77)
                #35 0x00007f5b2301744f PyEval_EvalCode (libpython3.14t.so.1.0 + 0x21744f)
                #36 0x00007f5b2303cf56 builtin_exec.lto_priv.0 (libpython3.14t.so.1.0 + 0x23cf56)
                #37 0x00007f5b22f445ed _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x1445ed)
                #38 0x00007f5b22f76481 _PyFunction_Vectorcall (libpython3.14t.so.1.0 + 0x176481)
                #39 0x00007f5b22f68106 object_vacall.lto_priv.0 (libpython3.14t.so.1.0 + 0x168106)
                #40 0x00007f5b22fa28ca PyObject_CallMethodObjArgs (libpython3.14t.so.1.0 + 0x1a28ca)
                #41 0x00007f5b22fa1f51 PyImport_ImportModuleLevelObject (libpython3.14t.so.1.0 + 0x1a1f51)
                #42 0x00007f5b22faf431 builtin___import__.lto_priv.0 (libpython3.14t.so.1.0 + 0x1af431)
                #43 0x00007f5b22f445ed _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x1445ed)
                #44 0x00007f5b22f76481 _PyFunction_Vectorcall (libpython3.14t.so.1.0 + 0x176481)
                #45 0x00007f5b22f68106 object_vacall.lto_priv.0 (libpython3.14t.so.1.0 + 0x168106)
                #46 0x00007f5b22fa28ca PyObject_CallMethodObjArgs (libpython3.14t.so.1.0 + 0x1a28ca)
                #47 0x00007f5b22fa1f51 PyImport_ImportModuleLevelObject (libpython3.14t.so.1.0 + 0x1a1f51)
                #48 0x00007f5b23018619 _PyEval_ImportName (libpython3.14t.so.1.0 + 0x218619)
                #49 0x00007f5b22f47de4 _PyEval_EvalFrameDefault (libpython3.14t.so.1.0 + 0x147de4)
                #50 0x00007f5b22f3af77 _PyEval_Vector (libpython3.14t.so.1.0 + 0x13af77)
                #51 0x00007f5b2301744f PyEval_EvalCode (libpython3.14t.so.1.0 + 0x21744f)
                #52 0x00007f5b2305a6e7 run_mod.lto_priv.0 (libpython3.14t.so.1.0 + 0x25a6e7)
                #53 0x00007f5b2305caca pyrun_file.lto_priv.0 (libpython3.14t.so.1.0 + 0x25caca)
                #54 0x00007f5b2305b937 _PyRun_SimpleFileObject (libpython3.14t.so.1.0 + 0x25b937)
                #55 0x00007f5b2305b315 _PyRun_AnyFileObject (libpython3.14t.so.1.0 + 0x25b315)
                #56 0x00007f5b23008911 Py_RunMain (libpython3.14t.so.1.0 + 0x208911)
                #57 0x00007f5b230026eb Py_BytesMain (libpython3.14t.so.1.0 + 0x2026eb)
                #58 0x00007f5b22c125b5 __libc_start_call_main (libc.so.6 + 0x35b5)
                #59 0x00007f5b22c12668 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3668)
                #60 0x000055f489d2b3d5 _start (/usr/bin/python3.14t + 0x3d5)
                ELF object binary architecture: AMD x86-64

GNU gdb (Fedora Linux) 16.3-1.fc43
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/bin/python3.14t...
Reading symbols from /home/cc/.cache/debuginfod_client/fa2d9fe3855f6566dc8946a23fb697245fb23fb6/debuginfo...
[New LWP 2714192]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `venv/bin/weasyprint venv/bin/weasyprint'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f5b1441dc75 in b_load_library ()
   from /home/cc/venv/lib64/python3.14t/site-packages/_cffi_backend.cpython-314t-x86_64-linux-gnu.so
(gdb) bt
#0  0x00007f5b1441dc75 in b_load_library ()
   from /home/cc/venv/lib64/python3.14t/site-packages/_cffi_backend.cpython-314t-x86_64-linux-gnu.so
#1  0x00007f5b22f684d0 in cfunction_call (func=0x23d096117c0, args=<optimized out>, kwargs=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/methodobject.c:576
#2  0x00007f5b22f2610c in _PyObject_MakeTpCall (tstate=0x7f5b233725f0 <_PyRuntime+346608>, callable=0x23d096117c0, 
    args=<optimized out>, nargs=<optimized out>, keywords=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:242
#3  0x00007f5b22f41436 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:1619
#4  0x00007f5b22f3af77 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#5  _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#6  0x00007f5b2301744f in PyEval_EvalCode (co=0x23d09776c00, globals=<optimized out>, locals=0x23d09608700)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:853
#7  0x00007f5b2303cf56 in builtin_exec_impl (module=<optimized out>, source=0x23d09776c00, globals=0x23d09608700, 
    locals=0x23d09608700, closure=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/bltinmodule.c:1156
#8  builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/clinic/bltinmodule.c.h:568
#9  0x00007f5b22f445ed in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:2654
#10 0x00007f5b22f76481 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
--Type <RET> for more, q to quit, c to continue without paging--c
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#11 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=0x0, args=<optimized out>, 
    argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#12 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:413
#13 0x00007f5b22f68106 in _PyObject_VectorcallTstate (tstate=0x7f5b233725f0 <_PyRuntime+346608>, callable=0x23d083b4980, 
    args=0x7fff03b5b120, nargsf=<optimized out>, kwnames=0x0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_call.h:169
#14 object_vacall (tstate=0x7f5b233725f0 <_PyRuntime+346608>, base=<optimized out>, callable=0x23d083b4980, 
    vargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:819
#15 0x00007f5b22fa28ca in PyObject_CallMethodObjArgs (obj=<optimized out>, name=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:880
#16 0x00007f5b22fa1f51 in import_find_and_load (tstate=0x7f5b233725f0 <_PyRuntime+346608>, abs_name=0x23d09582b20)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3726
#17 PyImport_ImportModuleLevelObject (name=name@entry=0x23d095826c0, globals=<optimized out>, 
    locals=locals@entry=0x23d09607a80, fromlist=fromlist@entry=0x23d096178f0, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3808
#18 0x00007f5b23018619 in _PyEval_ImportName (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=0x7f5b23498d30, 
    name=0x23d095826c0, fromlist=0x23d096178f0, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:2886
#19 0x00007f5b22f47de4 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:6328
#20 0x00007f5b22f3af77 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#21 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#22 0x00007f5b2301744f in PyEval_EvalCode (co=0x23d088a4600, globals=<optimized out>, locals=0x23d09607a80)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:853
#23 0x00007f5b2303cf56 in builtin_exec_impl (module=<optimized out>, source=0x23d088a4600, globals=0x23d09607a80, 
    locals=0x23d09607a80, closure=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/bltinmodule.c:1156
#24 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/clinic/bltinmodule.c.h:568
#25 0x00007f5b22f445ed in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:2654
#26 0x00007f5b22f76481 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#27 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=0x0, args=<optimized out>, 
    argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#28 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:413
#29 0x00007f5b22f68106 in _PyObject_VectorcallTstate (tstate=0x7f5b233725f0 <_PyRuntime+346608>, callable=0x23d083b4980, 
    args=0x7fff03b5bd00, nargsf=<optimized out>, kwnames=0x0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_call.h:169
#30 object_vacall (tstate=0x7f5b233725f0 <_PyRuntime+346608>, base=<optimized out>, callable=0x23d083b4980, 
    vargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:819
#31 0x00007f5b22fa28ca in PyObject_CallMethodObjArgs (obj=<optimized out>, name=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:880
#32 0x00007f5b22fa1f51 in import_find_and_load (tstate=0x7f5b233725f0 <_PyRuntime+346608>, abs_name=0x23d08952460)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3726
#33 PyImport_ImportModuleLevelObject (name=name@entry=0x23d096445b0, globals=<optimized out>, 
    locals=locals@entry=0x23d08639440, fromlist=fromlist@entry=0x23d09607880, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3808
#34 0x00007f5b23018619 in _PyEval_ImportName (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=0x7f5b23498990, 
    name=0x23d096445b0, fromlist=0x23d09607880, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:2886
#35 0x00007f5b22f47de4 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:6328
#36 0x00007f5b22f3af77 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#37 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#38 0x00007f5b2301744f in PyEval_EvalCode (co=0x23d0915fc80, globals=<optimized out>, locals=0x23d08639440)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:853
#39 0x00007f5b2303cf56 in builtin_exec_impl (module=<optimized out>, source=0x23d0915fc80, globals=0x23d08639440, 
    locals=0x23d08639440, closure=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/bltinmodule.c:1156
#40 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/clinic/bltinmodule.c.h:568
#41 0x00007f5b22f445ed in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:2654
#42 0x00007f5b22f76481 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#43 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=0x0, args=<optimized out>, 
    argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#44 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:413
#45 0x00007f5b22f68106 in _PyObject_VectorcallTstate (tstate=0x7f5b233725f0 <_PyRuntime+346608>, callable=0x23d083b4980, 
    args=0x7fff03b5c8e0, nargsf=<optimized out>, kwnames=0x0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_call.h:169
#46 object_vacall (tstate=0x7f5b233725f0 <_PyRuntime+346608>, base=<optimized out>, callable=0x23d083b4980, 
    vargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:819
#47 0x00007f5b22fa28ca in PyObject_CallMethodObjArgs (obj=<optimized out>, name=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:880
#48 0x00007f5b22fa1f51 in import_find_and_load (tstate=0x7f5b233725f0 <_PyRuntime+346608>, abs_name=0x23d09641b30)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3726
#49 PyImport_ImportModuleLevelObject (name=name@entry=0x23d0871ff40, globals=<optimized out>, 
    locals=locals@entry=0x23d08d0f600, fromlist=fromlist@entry=0x23d08d0fd00, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3808
#50 0x00007f5b23018619 in _PyEval_ImportName (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=0x7f5b234985d0, 
    name=0x23d0871ff40, fromlist=0x23d08d0fd00, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:2886
#51 0x00007f5b22f47de4 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:6328
#52 0x00007f5b22f3af77 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#53 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#54 0x00007f5b2301744f in PyEval_EvalCode (co=0x23d08447b00, globals=<optimized out>, locals=0x23d08d0f600)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:853
#55 0x00007f5b2303cf56 in builtin_exec_impl (module=<optimized out>, source=0x23d08447b00, globals=0x23d08d0f600, 
    locals=0x23d08d0f600, closure=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/bltinmodule.c:1156
#56 builtin_exec (module=<optimized out>, args=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/clinic/bltinmodule.c.h:568
#57 0x00007f5b22f445ed in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:2654
#58 0x00007f5b22f76481 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#59 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=0x0, args=<optimized out>, 
    argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#60 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:413
#61 0x00007f5b22f68106 in _PyObject_VectorcallTstate (tstate=0x7f5b233725f0 <_PyRuntime+346608>, callable=0x23d083b4980, 
    args=0x7fff03b5d4c0, nargsf=<optimized out>, kwnames=0x0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_call.h:169
#62 object_vacall (tstate=0x7f5b233725f0 <_PyRuntime+346608>, base=<optimized out>, callable=0x23d083b4980, 
    vargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:819
#63 0x00007f5b22fa28ca in PyObject_CallMethodObjArgs (obj=<optimized out>, name=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:880
#64 0x00007f5b22fa1f51 in import_find_and_load (tstate=0x7f5b233725f0 <_PyRuntime+346608>, abs_name=0x23d08cdf140)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3726
#65 PyImport_ImportModuleLevelObject (name=0x23d08cdf140, globals=<optimized out>, locals=<optimized out>, fromlist=0x0, 
    level=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3808
#66 0x00007f5b22faf431 in builtin___import___impl (module=<optimized out>, name=<optimized out>, globals=<optimized out>, 
    locals=<optimized out>, fromlist=<optimized out>, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/bltinmodule.c:285
#67 builtin___import__ (module=<optimized out>, args=<optimized out>, nargs=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/clinic/bltinmodule.c.h:110
#68 0x00007f5b22f445ed in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:2654
#69 0x00007f5b22f76481 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#70 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=0x0, args=<optimized out>, 
    argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#71 _PyFunction_Vectorcall (func=<optimized out>, stack=<optimized out>, nargsf=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:413
#72 0x00007f5b22f68106 in _PyObject_VectorcallTstate (tstate=0x7f5b233725f0 <_PyRuntime+346608>, callable=0x23d083b4980, 
    args=0x7fff03b5dba0, nargsf=<optimized out>, kwnames=0x0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_call.h:169
#73 object_vacall (tstate=0x7f5b233725f0 <_PyRuntime+346608>, base=<optimized out>, callable=0x23d083b4980, 
    vargs=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:819
#74 0x00007f5b22fa28ca in PyObject_CallMethodObjArgs (obj=<optimized out>, name=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Objects/call.c:880
#75 0x00007f5b22fa1f51 in import_find_and_load (tstate=0x7f5b233725f0 <_PyRuntime+346608>, abs_name=0x23d08a0cf80)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3726
#76 PyImport_ImportModuleLevelObject (name=name@entry=0x23d08a0cf80, globals=<optimized out>, 
    locals=locals@entry=0x23d0856d000, fromlist=fromlist@entry=0x23d084fa1c0, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/import.c:3808
#77 0x00007f5b23018619 in _PyEval_ImportName (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=0x7f5b23498020, 
    name=0x23d08a0cf80, fromlist=0x23d084fa1c0, level=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:2886
#78 0x00007f5b22f47de4 in _PyEval_EvalFrameDefault (tstate=tstate@entry=0x7f5b233725f0 <_PyRuntime+346608>, 
    frame=<optimized out>, throwflag=throwflag@entry=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/generated_cases.c.h:6328
#79 0x00007f5b22f3af77 in _PyEval_EvalFrame (tstate=0x7f5b233725f0 <_PyRuntime+346608>, frame=<optimized out>, throwflag=0)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Include/internal/pycore_ceval.h:119
#80 _PyEval_Vector (tstate=0x7f5b233725f0 <_PyRuntime+346608>, func=<optimized out>, locals=<optimized out>, 
    args=<optimized out>, argcount=<optimized out>, kwnames=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:1961
#81 0x00007f5b2301744f in PyEval_EvalCode (co=0x23d08408180, globals=<optimized out>, locals=0x23d0856d000)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/ceval.c:853
#82 0x00007f5b2305a6e7 in run_mod (mod=<optimized out>, filename=<optimized out>, globals=0x23d0856d000, 
    locals=0x23d0856d000, flags=<optimized out>, arena=<optimized out>, interactive_src=<optimized out>, 
    generate_new_source=<optimized out>) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/pythonrun.c:1436
#83 0x00007f5b2305caca in pyrun_file (fp=0x55f4c089a510, filename=0x23d08a12580, start=<optimized out>, 
    globals=0x23d0856d000, locals=0x23d0856d000, closeit=1, flags=0x7fff03b5e4b8)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/pythonrun.c:1293
#84 0x00007f5b2305b937 in _PyRun_SimpleFileObject (fp=fp@entry=0x55f4c089a510, filename=filename@entry=0x23d08a12580, 
    closeit=closeit@entry=1, flags=flags@entry=0x7fff03b5e4b8)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/pythonrun.c:521
#85 0x00007f5b2305b315 in _PyRun_AnyFileObject (fp=0x55f4c089a510, filename=0x23d08a12580, closeit=1, flags=0x7fff03b5e4b8)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Python/pythonrun.c:81
#86 0x00007f5b23008911 in pymain_run_file_obj (program_name=0x23d08a12520, filename=0x23d08a12580, 
    skip_source_first_line=0) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Modules/main.c:410
#87 pymain_run_file (config=0x7f5b2333bec0 <_PyRuntime+123584>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Modules/main.c:429
#88 pymain_run_python (exitcode=0x7fff03b5e4a8) at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Modules/main.c:694
#89 Py_RunMain () at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Modules/main.c:775
#90 0x00007f5b230026eb in Py_BytesMain (argc=<optimized out>, argv=<optimized out>)
    at /usr/src/debug/python3.14-3.14.0~b2-1.fc43.x86_64/Modules/main.c:829
#91 0x00007f5b22c125b5 in __libc_start_call_main (main=main@entry=0x55f489d2b4a0 <main>, argc=argc@entry=2, 
    argv=argv@entry=0x7fff03b5e718) at ../sysdeps/nptl/libc_start_call_main.h:58
#92 0x00007f5b22c12668 in __libc_start_main_impl (main=0x55f489d2b4a0 <main>, argc=2, argv=0x7fff03b5e718, 
    init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fff03b5e708)
    at ../csu/libc-start.c:360
#93 0x000055f489d2b3d5 in _start ()

clin1234 avatar Jun 06 '25 01:06 clin1234

Hi!

Thanks for the bug report. Python 3.14b2 no-GIL, that’s living on the bleeding edge!

The stack trace you reported only mentions Python and cffi, so I suppose the bug is either in Python or cffi, and there’s not much we can do here. If you can reproduce the problem using cffi with less code than WeasyPrint’s, it may be interesting to report the bug to them.

I tried to reproduce your problem. Python 3.13t works fine for me, but Python 3.14b2 crashes… even with GIL, for unrelated reasons. Looks like there’s a problem in a context manager dealing with open files, but I don’t really understand what’s going on. With the context manager removed, everything works fine, even with 3.14t. It even works with PYTHON_GIL=0 (but it’s supposed to crash randomly until cffi supports no-GIL).

So… I now have two questions for you:

  • Can you reproduce the bug with other distributions (I assume you use Fedora)?
  • Do you have a problem when using 3.14b2 with the GIL?

liZe avatar Jun 06 '25 07:06 liZe

I don’t have the problem anymore with 3.14.0b4. Feel free to add a comment if there’s anything more we can do on this topic!

liZe avatar Jul 21 '25 06:07 liZe