Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding annotations to PDF leads to memory corruption and crashes #1388

Closed
ptwz opened this issue Nov 11, 2021 · 38 comments
Closed

Adding annotations to PDF leads to memory corruption and crashes #1388

ptwz opened this issue Nov 11, 2021 · 38 comments
Assignees
Labels

Comments

@ptwz
Copy link

ptwz commented Nov 11, 2021

Describe the bug

When adding multiple pop-up annotations to PDF files, python crashes randomly with segfault, bus error, broken linked list or whatever.

To Reproduce

Using a document object created with fitz.open, creating an annotation rectangle using fitz.Rect and passing it to the pages add_highlight_annot method we set up an annotation.

Using set_info we set content, subject and title of the pop-up to be displayed.

Finally we use set_popup to add the popup to the highlight and call the update method of the annotation.

The corruption seems to occur somewhere before calling the update method. As valgrind complains about a use after free right after calling update. Sorry, printf
debugging...

See this minimized examples:

#!/usr/bin/env python3
from pathlib import Path
import fitz  # pymupdf

# Seems to crash reliably with >10
# below 5 no crashes outside valgrind observed
ANNOT_COUNT = 10

inPDF = Path('test.pdf')
outPDF = Path('output.pdf')

doc = fitz.open(inPDF)

for x in range(ANNOT_COUNT):
    anno_rect = fitz.Rect(10+x, 10+x, 100+x, 100+x)
    pdfPage = doc[0]
    annot = pdfPage.add_highlight_annot(anno_rect)
    annot.set_info(
        content='Hello world',
        subject='summary',
        title='title',
    )
    annot.set_popup(anno_rect)
    annot.update()

doc.save(
    outPDF,
    garbage=4,
    clean=True,
    deflate=True,
    deflate_images=True,
    deflate_fonts=True,
)
PYTHONMALLOC=malloc valgrind -- python3 test.py

It seems there is no difference what PDF file to be annotating, but I attached a simple one that definitely shows this behavior anyways.

Screenshots (optional)

If applicable, add screenshots to help explain your problem.

==2441343== Memcheck, a memory error detector
==2441343== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2441343== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==2441343== Command: python3 test.py
==2441343== 
==2441343== Conditional jump or move depends on uninitialised value(s)
==2441343==    at 0x58B37F: PyUnicode_Decode (in /usr/bin/python3.8)
==2441343==    by 0x58B6D4: PyUnicode_FromEncodedObject (in /usr/bin/python3.8)
==2441343==    by 0x577DBA: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5F6872: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57107B: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x59CDFA: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5F68EE: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57107B: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x688666C: pdf_page_from_fz_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x675FFEF: Page_transformation_matrix (fitz_wrap.c:13748)
==2441343==    by 0x6768FC3: _wrap_Page_transformation_matrix (fitz_wrap.c:22964)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x68F204: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C27F1: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==  Address 0x810a018 is 40 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x686AD00: pdf_page_transform (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6760094: Page_transformation_matrix (fitz_wrap.c:13751)
==2441343==    by 0x6768FC3: _wrap_Page_transformation_matrix (fitz_wrap.c:22964)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x68F204: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C27F1: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==  Address 0x810a088 is 152 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x688666C: pdf_page_from_fz_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x679110E: Page_rotation (fitz_wrap.c:13372)
==2441343==    by 0x679110E: _wrap_Page_rotation (fitz_wrap.c:22447)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x68F204: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C27F1: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==  Address 0x810a018 is 40 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x679109D: JM_page_rotation (fitz_wrap.c:4398)
==2441343==    by 0x6791120: Page_rotation (fitz_wrap.c:13374)
==2441343==    by 0x6791120: _wrap_Page_rotation (fitz_wrap.c:22447)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x68F204: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C27F1: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==  Address 0x810a088 is 152 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x6832EA4: pdf_annot_push_local_xref (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x68237BA: is_allowed_subtype_wrap.isra.3 (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x676A278: Annot_line_ends (fitz_wrap.c:15056)
==2441343==    by 0x676A278: _wrap_Annot_line_ends (fitz_wrap.c:25971)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==    by 0x56BF08: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Address 0x810a080 is 144 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x6832F04: pdf_annot_pop_local_xref (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x682383D: is_allowed_subtype_wrap.isra.3 (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x676A278: Annot_line_ends (fitz_wrap.c:15056)
==2441343==    by 0x676A278: _wrap_Annot_line_ends (fitz_wrap.c:25971)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x502FE7: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C28C6: PyObject_GetAttr (in /usr/bin/python3.8)
==2441343==    by 0x56BD0D: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==    by 0x56BF08: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Address 0x810a080 is 144 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 8
==2441343==    at 0x678B17D: Annot__setAP (fitz_wrap.c:14762)
==2441343==    by 0x678B2EF: _wrap_Annot__setAP (fitz_wrap.c:25658)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==    by 0x56BF08: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Address 0x810a080 is 144 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== Invalid read of size 4
==2441343==    at 0x67BEFDC: fz_drop_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x676B84D: delete_Page (fitz_wrap.c:12565)
==2441343==    by 0x676B84D: _wrap_delete_Page (fitz_wrap.c:20888)
==2441343==    by 0x5C52BF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x5F6165: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==    by 0x56BF08: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x5F6165: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2441343==    by 0x5A74F0: ??? (in /usr/bin/python3.8)
==2441343==    by 0x69EE4A: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5C59D1: PyObject_CallFinalizerFromDealloc (in /usr/bin/python3.8)
==2441343==    by 0x5AA2B8: ??? (in /usr/bin/python3.8)
==2441343==    by 0x5D1F66: PyDict_SetItem (in /usr/bin/python3.8)
==2441343==  Address 0x8109ff0 is 0 bytes inside a block of size 208 free'd
==2441343==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67FA3E3: fz_free (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6796D5A: JM_refresh_page (fitz_wrap.c:5154)
==2441343==    by 0x6796ED0: Annot__update_appearance (fitz_wrap.c:15049)
==2441343==    by 0x67973BE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==    by 0x50ADEF: ??? (in /usr/bin/python3.8)
==2441343==    by 0x56CF29: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2441343==  Block was alloc'd at
==2441343==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==2441343==    by 0x67654AB: JM_Py_Malloc (fitz_wrap.c:3781)
==2441343==    by 0x67FA24B: do_scavenging_malloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67FA30F: fz_calloc (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BED46: fz_new_page_of_size (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x686AF81: pdf_load_page_imp (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x67BEE84: fz_load_chapter_page (in /home/pturczak/.local/lib/python3.8/site-packages/fitz/_fitz.cpython-38-x86_64-linux-gnu.so)
==2441343==    by 0x6765118: Document_load_page (fitz_wrap.c:9840)
==2441343==    by 0x67743B8: _wrap_Document_load_page (fitz_wrap.c:16878)
==2441343==    by 0x5F5E59: PyCFunction_Call (in /usr/bin/python3.8)
==2441343==    by 0x5F698D: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2441343==    by 0x57148A: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2441343== 
==2441343== 
==2441343== HEAP SUMMARY:
==2441343==     in use at exit: 3,836,553 bytes in 27,960 blocks
==2441343==   total heap usage: 118,878 allocs, 90,918 frees, 24,007,145 bytes allocated
==2441343== 
==2441343== LEAK SUMMARY:
==2441343==    definitely lost: 56 bytes in 1 blocks
==2441343==    indirectly lost: 0 bytes in 0 blocks
==2441343==      possibly lost: 1,065,808 bytes in 9,419 blocks
==2441343==    still reachable: 2,770,689 bytes in 18,540 blocks
==2441343==         suppressed: 0 bytes in 0 blocks
==2441343== Rerun with --leak-check=full to see details of leaked memory
==2441343== 
==2441343== Use --track-origins=yes to see where uninitialised values co

Your configuration (mandatory)

  • Operating system: Ubuntu focal x86_64,
  • Python version, bitness: python3.8.10 x86_64
3.8.10 (default, Sep 28 2021, 16:10:42) 
[GCC 9.3.0] 
 linux 
 
PyMuPDF 1.19.1: Python bindings for the MuPDF 1.19.0 library.
Version date: 2021-10-23 00:00:01.
Built for Python 3.8 on linux (64-bit).
@JorjMcKie
Copy link
Collaborator

Cannot reproduce:
I tried your script under Windows and Linux (WSL) with an own arbitrary file (you did not attach yours): no issues.
Even when increasing ANNOT_COUNT to 50 nothing bad happened.

@JorjMcKie
Copy link
Collaborator

Also tested with a new empty file / page ... no issues with 200 annotations.

@ptwz
Copy link
Author

ptwz commented Nov 11, 2021

Strange, this a boiled down example of something we observed on multiple machines. We're preparing to open source a tool for LaTeX/git annotation that crashes on a regular basis.

I'll try to determine to common factor. User @fiee is also collaborating in this project, I'll ask him for feedback.

@JorjMcKie
Copy link
Collaborator

How did install PyMuPDF? Wheel?

@ptwz
Copy link
Author

ptwz commented Nov 11, 2021

Using pip3, so I guess no wheel involved. But I'm not an expert in Python library distribution at all.

@ptwz
Copy link
Author

ptwz commented Nov 11, 2021

BTW: Did you use valgrind, because it seems the corruption starts already at one annotation but destabilizes the executable over time.

@JorjMcKie
Copy link
Collaborator

Depends - probably wheel if PIP was involved.
But maybe the common factor are those machines, where installation from source did happen - just a wild guess

@JorjMcKie
Copy link
Collaborator

BTW: Did you use valgrind, because it seems the corruption starts already at one annotation but destabilizes the executable over time.

No, just python3.8 in a normal terminal wiindow
but the execution went through like a flash - faster than on the hosting Windows even.

@fiee
Copy link

fiee commented Nov 11, 2021

I’m on Python 3.9 (python.org) on MacOS 10.14; PyMuPDF was installed with pip3 (yes wheel).

@JorjMcKie
Copy link
Collaborator

@fiee - and you experienced crashes on Mac OSX, too?

@fiee
Copy link

fiee commented Nov 11, 2021

Yes, Python segfaults (don’t know if this crash report helps in any way):

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [51846]

VM Regions Near 0x7fba21:
--> 
    __TEXT                 000000010a194000-000000010a195000 [    4K] r-x/rwx SM=COW  /Library/Frameworks/Python.framework/Versions/3.9/Resources/Python.app/Contents/MacOS/Python

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   org.python.python             	0x000000010a317f38 PyObject_GC_UnTrack + 24
1   org.python.python             	0x000000010a229c28 tupledealloc + 24
2   org.python.python             	0x000000010a1d9532 _PyObject_MakeTpCall + 434
3   org.python.python             	0x000000010a2afecc call_function + 876
4   org.python.python             	0x000000010a2ad363 _PyEval_EvalFrameDefault + 25219
5   org.python.python             	0x000000010a2b0b33 _PyEval_EvalCode + 2611
6   org.python.python             	0x000000010a1d9c41 _PyFunction_Vectorcall + 289
7   org.python.python             	0x000000010a2afe3c call_function + 732
8   org.python.python             	0x000000010a2ad342 _PyEval_EvalFrameDefault + 25186
9   org.python.python             	0x000000010a2b0b33 _PyEval_EvalCode + 2611
10  org.python.python             	0x000000010a1d9c41 _PyFunction_Vectorcall + 289
11  org.python.python             	0x000000010a1d92bf _PyObject_FastCallDictTstate + 159
12  org.python.python             	0x000000010a1d9f28 _PyObject_Call_Prepend + 152
13  org.python.python             	0x000000010a2336f5 slot_tp_init + 165
14  org.python.python             	0x000000010a22ec49 type_call + 345
15  org.python.python             	0x000000010a1d9a3c _PyObject_Call + 140
16  org.python.python             	0x000000010a2ada73 _PyEval_EvalFrameDefault + 27027
17  org.python.python             	0x000000010a2b0b33 _PyEval_EvalCode + 2611
18  org.python.python             	0x000000010a1d9c41 _PyFunction_Vectorcall + 289
19  org.python.python             	0x000000010a1dbde9 method_vectorcall + 441
20  org.python.python             	0x000000010a2ada73 _PyEval_EvalFrameDefault + 27027
21  org.python.python             	0x000000010a2b0b33 _PyEval_EvalCode + 2611
22  org.python.python             	0x000000010a1d9c41 _PyFunction_Vectorcall + 289
23  org.python.python             	0x000000010a1dbde9 method_vectorcall + 441
24  org.python.python             	0x000000010a2ada73 _PyEval_EvalFrameDefault + 27027
25  org.python.python             	0x000000010a2b0b33 _PyEval_EvalCode + 2611
26  org.python.python             	0x000000010a1d9c41 _PyFunction_Vectorcall + 289
27  org.python.python             	0x000000010a2afe3c call_function + 732
28  org.python.python             	0x000000010a2ad363 _PyEval_EvalFrameDefault + 25219
29  org.python.python             	0x000000010a1d9cb8 function_code_fastcall + 104
30  org.python.python             	0x000000010a1e3593 property_descr_get + 115
31  org.python.python             	0x000000010a21c3a3 _PyObject_GenericGetAttrWithDict + 163
32  org.python.python             	0x000000010a232392 slot_tp_getattr_hook + 210
33  org.python.python             	0x000000010a2ab97c _PyEval_EvalFrameDefault + 18588
34  org.python.python             	0x000000010a2b0b33 _PyEval_EvalCode + 2611
35  org.python.python             	0x000000010a2a6fbb PyEval_EvalCode + 139
36  org.python.python             	0x000000010a2fab43 pyrun_file + 387
37  org.python.python             	0x000000010a2f8ea2 PyRun_SimpleFileExFlags + 850
38  org.python.python             	0x000000010a315f39 Py_RunMain + 1801
39  org.python.python             	0x000000010a3163cf pymain_main + 223
40  org.python.python             	0x000000010a3165cb Py_BytesMain + 43
41  libdyld.dylib                 	0x00007fff6c1173d5 start + 1

Thread 0 crashed with X86 Thread State (64-bit):
  rax: 0x00000000007fba19  rbx: 0x0000000000000000  rcx: 0x000000010cc6de40  rdx: 0x000000010c8cacb0
  rdi: 0x000000010c36aedf  rsi: 0x000000010b02a450  rbp: 0x00007ffee5a693f0  rsp: 0x00007ffee5a693f0
   r8: 0x000000010a43f1c0   r9: 0xffffffff00000000  r10: 0x00007fffa217a1e8  r11: 0x0000000000000206
  r12: 0x000000010c36aedf  r13: 0x00007fba18702a00  r14: 0x000000010b02a450  r15: 0x0000000000000015
  rip: 0x000000010a317f38  rfl: 0x0000000000010202  cr2: 0x00000000007fba21
  
Logical CPU:     2
Error Code:      0x00000004
Trap Number:     14


Binary Images:
       0x10a194000 -        0x10a194fff +org.python.python (3.9.5 - 3.9.5) <E5C1C502-A091-3658-9BE9-7E804391296E> /Library/Frameworks/Python.framework/Versions/3.9/Resources/Python.app/Contents/MacOS/Python
       0x10a19d000 -        0x10a3ffff7 +org.python.python (3.9.5, [c] 2001-2019 Python Software Foundation. - 3.9.5) <A9674509-B403-3C52-9C4A-BDB8A60059B0> /Library/Frameworks/Python.framework/Versions/3.9/Python
       0x10a7f0000 -        0x10a7f2fff +_heapq.cpython-39-darwin.so (0) <0610E12E-E474-3543-9C2D-41E41D898E5E> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_heapq.cpython-39-darwin.so
       0x10a93a000 -        0x10a93ffff +_json.cpython-39-darwin.so (0) <97346B37-3486-365A-93EE-FCA92938FDDA> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_json.cpython-39-darwin.so
       0x10aa14000 -        0x10aa1cfff +math.cpython-39-darwin.so (0) <64288A1A-F84F-3958-A2AD-0841E0DE8713> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/math.cpython-39-darwin.so
       0x10aa28000 -        0x10aa37fff +_datetime.cpython-39-darwin.so (0) <CED38B99-B454-32C0-B258-D86CCE74C0DB> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_datetime.cpython-39-darwin.so
       0x10aa88000 -        0x10aa8bff7 +mmap.cpython-39-darwin.so (0) <83A80F24-DC2B-3EE5-91F6-AFE4835EAD46> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/mmap.cpython-39-darwin.so
       0x10aa94000 -        0x10aa98ff7 +binascii.cpython-39-darwin.so (0) <94998F9C-986A-36E9-954C-DDA00251AFD0> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/binascii.cpython-39-darwin.so
       0x10aaa2000 -        0x10aaa8ff7 +_hashlib.cpython-39-darwin.so (0) <3AD3A436-030D-38C3-80AC-45F64465BC71> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_hashlib.cpython-39-darwin.so
       0x10aab6000 -        0x10ab0efff +libssl.1.1.dylib (0) <5A6EDBD2-F30E-3C2B-A961-35B1834873F6> /Library/Frameworks/Python.framework/Versions/3.9/lib/libssl.1.1.dylib
       0x10ab3d000 -        0x10ad53f4f +libcrypto.1.1.dylib (0) <D6197722-309C-3F5E-BFF4-73855B3C80E4> /Library/Frameworks/Python.framework/Versions/3.9/lib/libcrypto.1.1.dylib
       0x10adf1000 -        0x10adf7ff7 +_blake2.cpython-39-darwin.so (0) <4A654490-B8BB-310B-921A-2D1BEDF32315> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_blake2.cpython-39-darwin.so
       0x10ae01000 -        0x10ae06ff7 +_struct.cpython-39-darwin.so (0) <EF076841-41DA-3D83-82FF-180321509365> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_struct.cpython-39-darwin.so
       0x10ae13000 -        0x10ae18fff +zlib.cpython-39-darwin.so (0) <4948A2D1-F129-30DE-9024-3855A18D2393> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/zlib.cpython-39-darwin.so
       0x10aea2000 -        0x10aea4fff +_bz2.cpython-39-darwin.so (0) <58C59C99-30C1-3A61-981D-19784E5C54C3> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_bz2.cpython-39-darwin.so
       0x10aead000 -        0x10aedefff +_lzma.cpython-39-darwin.so (0) <154CECE0-036C-36DD-8AA1-91BD4C2ADD5D> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_lzma.cpython-39-darwin.so
       0x10aeed000 -        0x10aeeefff +grp.cpython-39-darwin.so (0) <4DA68FB2-E047-3C96-9387-4312D0BDF907> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/grp.cpython-39-darwin.so
       0x10aef6000 -        0x10aef7ff7 +_bisect.cpython-39-darwin.so (0) <2994142E-C92F-3A89-AC96-417C6C61D20B> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_bisect.cpython-39-darwin.so
       0x10aeff000 -        0x10af00fff +_random.cpython-39-darwin.so (0) <684F9CC4-3470-3AE4-AD24-43137D696AB1> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_random.cpython-39-darwin.so
       0x10af09000 -        0x10af0dfff +_sha512.cpython-39-darwin.so (0) <C784AF02-8D0D-3989-BACD-63C438899F75> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_sha512.cpython-39-darwin.so
       0x10af16000 -        0x10af1dfff +array.cpython-39-darwin.so (0) <25B69EB4-3F7A-3EAB-91B4-D9F4E8ACB12F> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/array.cpython-39-darwin.so
       0x10afea000 -        0x10afeafff +_opcode.cpython-39-darwin.so (0) <0C38B353-9FA4-39EE-A897-60889FD78C65> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_opcode.cpython-39-darwin.so
       0x10b032000 -        0x10b034fff +termios.cpython-39-darwin.so (0) <30B0FE8C-186E-3ACD-A1F4-9A278D572C00> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/termios.cpython-39-darwin.so
       0x10b03c000 -        0x10b03efff +_posixsubprocess.cpython-39-darwin.so (0) <E42EEA92-4CEC-3F52-B91E-1ED05AF567D9> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_posixsubprocess.cpython-39-darwin.so
       0x10b047000 -        0x10b04bff7 +select.cpython-39-darwin.so (0) <96E817D5-7F44-3A56-9DF2-C334B7DFAFF9> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/select.cpython-39-darwin.so
       0x10b1e6000 -        0x10b1e6fff +_uuid.cpython-39-darwin.so (0) <C62B96EB-D86B-3295-A38E-564BCC91CD60> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_uuid.cpython-39-darwin.so
       0x10b371000 -        0x10c0c8ff7 +_fitz.cpython-39-darwin.so (0) <FAC28C51-5C67-3549-B6EF-896D0F1F8445> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/fitz/_fitz.cpython-39-darwin.so
       0x10c390000 -        0x10c39dfff +_socket.cpython-39-darwin.so (0) <8374BF78-8D87-3720-AE3C-018A937EEB6B> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_socket.cpython-39-darwin.so
       0x10c3aa000 -        0x10c3f4ff7 +_decimal.cpython-39-darwin.so (0) <F60193CD-1BC8-3D5C-BF27-0D79813FEDBD> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_decimal.cpython-39-darwin.so
       0x10c493000 -        0x10c495fff +fcntl.cpython-39-darwin.so (0) <B6F76119-8887-34B3-BA4C-2EE55A97E7B1> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/fcntl.cpython-39-darwin.so
       0x10c4dd000 -        0x10c4e1ff7 +_csv.cpython-39-darwin.so (0) <FD693700-7CFE-32DA-BE0B-7A26FBF08D4C> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload/_csv.cpython-39-darwin.so
       0x11333d000 -        0x1133a770f  dyld (655.1.1) <4842B61A-B868-3146-9CA9-5582C4198B25> /usr/lib/dyld
    0x7fff3ff52000 -     0x7fff40398ff7  com.apple.CoreFoundation (6.9 - 1575.405) <22EC9B76-B2B4-3CE8-9EAE-33531A902956> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
    0x7fff68c42000 -     0x7fff68c43ffb  libDiagnosticMessagesClient.dylib (107) <A14D0819-0970-34CD-8680-80E4D7FE8C2C> /usr/lib/libDiagnosticMessagesClient.dylib
    0x7fff69082000 -     0x7fff69083ffb  libSystem.B.dylib (1252.250.1) <B2E16B83-D383-330A-8BD3-39526248EDFD> /usr/lib/libSystem.B.dylib
    0x7fff69339000 -     0x7fff69346fff  libbz2.1.0.dylib (38.200.3) <272953A1-8D36-329B-BDDB-E887B347710F> /usr/lib/libbz2.1.0.dylib
    0x7fff69347000 -     0x7fff6939aff7  libc++.1.dylib (400.9.4) <9A60A190-6C34-339F-BB3D-AACE942009A4> /usr/lib/libc++.1.dylib
    0x7fff6939b000 -     0x7fff693b0ff7  libc++abi.dylib (400.17) <38C09CED-9090-3719-90F3-04A2749F5428> /usr/lib/libc++abi.dylib
    0x7fff69df8000 -     0x7fff6a059ffb  libicucore.A.dylib (62141.0.1) <A0D63918-76E9-3C1B-B255-46F4C1DA7FE8> /usr/lib/libicucore.A.dylib
    0x7fff6a93c000 -     0x7fff6b0c4fd7  libobjc.A.dylib (756.2) <20942D4E-CE6F-376A-8BCD-016F88E4BFD5> /usr/lib/libobjc.A.dylib
    0x7fff6b7a3000 -     0x7fff6b7b5ff7  libz.1.dylib (70.200.4) <B048FC1F-058F-3A08-A1FE-81D5308CB3E6> /usr/lib/libz.1.dylib
    0x7fff6bf99000 -     0x7fff6bf9dff3  libcache.dylib (81) <1987D1E1-DB11-3291-B12A-EBD55848E02D> /usr/lib/system/libcache.dylib
    0x7fff6bf9e000 -     0x7fff6bfa8ff3  libcommonCrypto.dylib (60118.250.2) <1765BB6E-6784-3653-B16B-CB839721DC9A> /usr/lib/system/libcommonCrypto.dylib
    0x7fff6bfa9000 -     0x7fff6bfb0ff7  libcompiler_rt.dylib (63.4) <5212BA7B-B7EA-37B4-AF6E-AC4F507EDFB8> /usr/lib/system/libcompiler_rt.dylib
    0x7fff6bfb1000 -     0x7fff6bfbaff7  libcopyfile.dylib (146.250.1) <98CD00CD-9B91-3B5C-A9DB-842638050FA8> /usr/lib/system/libcopyfile.dylib
    0x7fff6bfbb000 -     0x7fff6c040fff  libcorecrypto.dylib (602.260.3) <9D9C206B-AB19-3257-95D7-59A993845640> /usr/lib/system/libcorecrypto.dylib
    0x7fff6c0c7000 -     0x7fff6c100ff7  libdispatch.dylib (1008.270.1) <97273678-E94C-3C8C-89F6-2E2020F4B43B> /usr/lib/system/libdispatch.dylib
    0x7fff6c101000 -     0x7fff6c12dff7  libdyld.dylib (655.1.1) <002418CC-AD11-3D10-865B-015591D24E6C> /usr/lib/system/libdyld.dylib
    0x7fff6c12e000 -     0x7fff6c12effb  libkeymgr.dylib (30) <0D0F9CA2-8D5A-3273-8723-59987B5827F2> /usr/lib/system/libkeymgr.dylib
    0x7fff6c13c000 -     0x7fff6c13cff7  liblaunch.dylib (1336.261.7) <688DAED5-8930-3271-BAEF-68AA48DF5EBB> /usr/lib/system/liblaunch.dylib
    0x7fff6c13d000 -     0x7fff6c142fff  libmacho.dylib (927.0.3) <A377D608-77AB-3F6E-90F0-B4F251A5C12F> /usr/lib/system/libmacho.dylib
    0x7fff6c143000 -     0x7fff6c145ff7  libquarantine.dylib (86.270.1) <3F36A3D6-9606-3D90-B520-809BAEF981C3> /usr/lib/system/libquarantine.dylib
    0x7fff6c146000 -     0x7fff6c147ff7  libremovefile.dylib (45.200.2) <9FBEB2FF-EEBE-31BC-BCFC-C71F8D0E99B6> /usr/lib/system/libremovefile.dylib
    0x7fff6c148000 -     0x7fff6c15fff3  libsystem_asl.dylib (356.200.4) <A62A7249-38B8-33FA-9875-F1852590796C> /usr/lib/system/libsystem_asl.dylib
    0x7fff6c160000 -     0x7fff6c160ff7  libsystem_blocks.dylib (73) <A453E8EE-860D-3CED-B5DC-BE54E9DB4348> /usr/lib/system/libsystem_blocks.dylib
    0x7fff6c161000 -     0x7fff6c1e8fff  libsystem_c.dylib (1272.250.3) <6016EDA1-440B-34D7-A232-686CD7FBEE90> /usr/lib/system/libsystem_c.dylib
    0x7fff6c1e9000 -     0x7fff6c1ecffb  libsystem_configuration.dylib (963.270.4) <22D75BE2-9672-337A-9BA5-878D69DAB93D> /usr/lib/system/libsystem_configuration.dylib
    0x7fff6c1ed000 -     0x7fff6c1f0ff7  libsystem_coreservices.dylib (66.1) <B1505C8F-F2CA-3976-91B4-2F6EDAD49BFB> /usr/lib/system/libsystem_coreservices.dylib
    0x7fff6c1f1000 -     0x7fff6c1f7fff  libsystem_darwin.dylib (1272.250.3) <DE5A4C05-2E2A-3221-B7C5-5EC0407F862E> /usr/lib/system/libsystem_darwin.dylib
    0x7fff6c1f8000 -     0x7fff6c1feffb  libsystem_dnssd.dylib (878.270.3) <D5352ABD-0311-3327-8E64-93F29EB19BF1> /usr/lib/system/libsystem_dnssd.dylib
    0x7fff6c1ff000 -     0x7fff6c24affb  libsystem_info.dylib (517.200.9) <D09D5AE0-2FDC-3A6D-93EC-729F931B1457> /usr/lib/system/libsystem_info.dylib
    0x7fff6c24b000 -     0x7fff6c273ff7  libsystem_kernel.dylib (4903.278.70) <35EE704F-F9B6-3531-B312-E45CFA2A8743> /usr/lib/system/libsystem_kernel.dylib
    0x7fff6c274000 -     0x7fff6c2bfff7  libsystem_m.dylib (3158.200.7) <F19B6DB7-014F-3820-831F-389CCDA06EF6> /usr/lib/system/libsystem_m.dylib
    0x7fff6c2c0000 -     0x7fff6c2eafff  libsystem_malloc.dylib (166.270.1) <011F3AD0-8E6A-3A89-AE64-6E5F6840F30A> /usr/lib/system/libsystem_malloc.dylib
    0x7fff6c2eb000 -     0x7fff6c2f5ff7  libsystem_networkextension.dylib (767.250.2) <FF06F13A-AEFE-3A27-A073-910EF78AEA36> /usr/lib/system/libsystem_networkextension.dylib
    0x7fff6c2f6000 -     0x7fff6c2fdfff  libsystem_notify.dylib (172.200.21) <145B5CFC-CF73-33CE-BD3D-E8DDE268FFDE> /usr/lib/system/libsystem_notify.dylib
    0x7fff6c2fe000 -     0x7fff6c307fef  libsystem_platform.dylib (177.270.1) <9D1FE5E4-EB7D-3B3F-A8D1-A96D9CF1348C> /usr/lib/system/libsystem_platform.dylib
    0x7fff6c308000 -     0x7fff6c312ff7  libsystem_pthread.dylib (330.250.2) <2D5C08FF-484F-3D59-9132-CE1DCB3F76D7> /usr/lib/system/libsystem_pthread.dylib
    0x7fff6c313000 -     0x7fff6c316ff7  libsystem_sandbox.dylib (851.270.6) <390BE353-BC0C-3E4C-9167-0D973F0DD822> /usr/lib/system/libsystem_sandbox.dylib
    0x7fff6c317000 -     0x7fff6c319ff3  libsystem_secinit.dylib (30.260.2) <EF1EA47B-7B22-35E8-BD9B-F7003DCB96AE> /usr/lib/system/libsystem_secinit.dylib
    0x7fff6c31a000 -     0x7fff6c321ff3  libsystem_symptoms.dylib (820.267.2) <0DA60956-0403-3456-9D6A-11F2DB9E3819> /usr/lib/system/libsystem_symptoms.dylib
    0x7fff6c322000 -     0x7fff6c337ff7  libsystem_trace.dylib (906.260.3) <5B6FAE61-EF5C-381F-B71B-9B6F6428FEE2> /usr/lib/system/libsystem_trace.dylib
    0x7fff6c339000 -     0x7fff6c33effb  libunwind.dylib (35.4) <24A97A67-F017-3CFC-B0D0-6BD0224B1336> /usr/lib/system/libunwind.dylib
    0x7fff6c33f000 -     0x7fff6c36efff  libxpc.dylib (1336.261.7) <404F0E1A-30BC-3CFB-98D3-4A2167CC2AB8> /usr/lib/system/libxpc.dylib

On the console:

mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: cannot create appearance stream for  annotations
mupdf: object out of range (3301 0 R); xref size 2409
mupdf: cannot create appearance stream for  annotations
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: cannot create appearance stream for  annotations
mupdf: object out of range (3301 0 R); xref size 2411
mupdf: cannot create appearance stream for  annotations
    INFO: Saving test_annot.pdf (p.2)
    INFO: Saving test_annot.pdf (p.7)
Segmentation fault: 11

@ptwz
Copy link
Author

ptwz commented Nov 11, 2021

True, it runs blazingly fast, but it seems a sublte memory problem in the C part of things. I've worked with C things extensively for several years but stopped doing much there about ten years ago.
It seems to me some use-after-free is happening, these bugs are nasty in a way they do not cause trouble for a long time and triggering is random at best.

@JorjMcKie
Copy link
Collaborator

@fiee - no the trace as such won't help me. I also have no Mac at hand.
But the MuPDF messages are interesting: mupdf: object out of range (3301 0 R); xref size 2411.
Would be great to have the PDF belonging to this run.

@fiee - @ptwz - question to both of you:
Does all this happen since v1.19.* only?

@fiee
Copy link

fiee commented Nov 11, 2021

I never tested another version.

Actually, I can run @ptwz’s example with 1000 annotations without crashes (needs a minute* or so on my 2012 Mac mini), it happens only in my actual code. Might be related to annots on more or less pages? (Test with 10,000 annotations is still running.)
I need to come up with a minimal example.

EDIT: * no, much less:

real	0m38,336s
user	0m16,141s
sys	0m0,328s

But the 10,000-test did never finish.

@JorjMcKie
Copy link
Collaborator

True, it runs blazingly fast, but it seems a sublte memory problem in the C part of things. I've worked with C things extensively for several years but stopped doing much there about ten years ago. It seems to me some use-after-free is happening, these bugs are nasty in a way they do not cause trouble for a long time and triggering is random at best.

Intermittent error always are a pain in the neck. Even more when they do occur on selected platforms only.

I repeated the run with my 200 annots under valgrind - never used it before.
Seems a talkative guy! It even has to complain about some memory stuff when I simply do import fitz;print(fitz.__doc__).
Doesn't look like being very specific or otherwise helpful.

@fiee
Copy link

fiee commented Nov 11, 2021

Or it’s related to our TeX-produced PDF files; they seem to use “uncommon” structures like iref streams (see highkite/pdfAnnotate#52 where we tried the same with JavaScript).

@ptwz
Copy link
Author

ptwz commented Nov 11, 2021

I repeated the run with my 200 annots under valgrind - never used it before. Seems a talkative guy! It even has to complain about some memory stuff when I simply do import fitz;print(fitz.__doc__). Doesn't look like being very specific or otherwise helpful.

Did you call valgrind using PYTHONMALLOC=malloc valgrind python3 ... ?

Python has its own memory allocator that totally confuses valgrind, for valgrind the Python team implemented the more conventional memory management. Then you see the true problems, not all the messages generated due to valgrind not understanding what Python does.

@ptwz
Copy link
Author

ptwz commented Nov 11, 2021

Or it’s related to our TeX-produced PDF files; they seem to use “uncommon” structures like iref streams (see highkite/pdfAnnotate#52 where we tried the same with JavaScript).

Maybe, but my test file was generated with pdftk. I also used scans from my printer, exports from LibreOffice, LuaTeX, ... all to the same result.

@swamper123
Copy link

Python Version: 3.9.6 (with enabled optimisations)
PyMuPDF: 1.19 (just installed via pip)
OS: Linux Ubuntu 20.04

Added Code from @ptwz and set ANNOT_COUNT on 10, 100, and 1k.

Used a new created "hello-world" article made by tex-studio.

\documentclass[]{article}

%opening
\title{}
\author{}

\begin{document}

\maketitle

\begin{abstract}

\end{abstract}

\section{}

\end{document}

No issues appeared.

@fiee
Copy link

fiee commented Nov 11, 2021

Python Version: 3.9.6 (with enabled optimisations) PyMuPDF: 1.19 (just installed via pip) OS: Linux Ubuntu 20.04
Used a new created "hello-world" article made by tex-studio.

Your TeX (Live) version might be relevant. I’m on TL2021, @pwtz and our Jenkins server probably also, since we needed current packages for CJK. Linux distros often are a year or so behind. Oh, and we use LuaLaTeX (LuaHBTeX, Version 1.13.2).

OTOH pwtz tested with other PDFs with the same result; I get the segfaults still only with my “complete” code.

@swamper123
Copy link

@fiee
First PDF was created with pdflatex.
Second one with LuaHBTeX, Version 1.12.0.

Still no complains with ANNOT_COUNT = 1000 on my device.

@ptwz
Copy link
Author

ptwz commented Nov 12, 2021

Did you run it through valgrind? Use-after-free might not crash the minimal example due to it simplicity but corruptions should be visible.

@JorjMcKie
Copy link
Collaborator

Can someone of you let me have a file that reliably crashes on Linux please?
I am unable to to anything without having a reproducer on my machine.

@JorjMcKie
Copy link
Collaborator

It would also be helpful if someone could try a failing script with a pre-1.19.0 version, e.g. 1.18.19.

@fiee
Copy link

fiee commented Nov 12, 2021

From my Mac:

$ PYTHONMALLOC=malloc valgrind -- python3 test.py
==32235== Memcheck, a memory error detector
==32235== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==32235== Using Valgrind-3.17.0.GIT-lbmacos and LibVEX; rerun with -h for copyright info
==32235== Command: python3 test.py
==32235== 
--32235-- UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option
--32235-- UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option (repeated 2 times)
--32235-- UNKNOWN mach_msg unhandled MACH_SEND_TRAILER option (repeated 4 times)
==32235== Syscall param posix_spawn(pid) points to unaddressable byte(s)
==32235==    at 0x101D0D272: __posix_spawn (in /usr/lib/system/libsystem_kernel.dylib)
==32235==    by 0x101D0D22A: posix_spawn (in /usr/lib/system/libsystem_kernel.dylib)
==32235==    by 0x100000B1B: ??? (in /Library/Frameworks/Python.framework/Versions/3.9/bin/python3)
==32235==    by 0x101A743D4: start (in /usr/lib/system/libdyld.dylib)
==32235==    by 0x1: ???
==32235==    by 0x101E2D54F: ???
==32235==    by 0x1048D36E6: ???
==32235==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==32235== 

Looks like no problems; script ran with 1000 annotations.

On my Linux laptop running Python3.7 and PureOS, valgrind found many problems (I reduced to only 10 annotations) and suggested the --leak-check=full option. Log file:
valgrind_pureos.log

@ptwz
Copy link
Author

ptwz commented Nov 12, 2021

This looks like what I've seen, especially the invalid reads into free'd memory.

Leak-Check is not so critical, as we don't seem to eat all RAM..

@ptwz
Copy link
Author

ptwz commented Nov 12, 2021

Just noticed: Reverting to version 1.18.19 fixes both the problems in @fiee's code and in my minimal example:
pip install pymupdf==1.18.19

Except for some (maybe spurious) warning about uninitialized memory, valgrind is finally happy with my test code.

$ PYTHONMALLOC=malloc valgrind python3 test.py
==2674023== Memcheck, a memory error detector
==2674023== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==2674023== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==2674023== Command: python3 test.py
==2674023==  
==2674023== Conditional jump or move depends on uninitialised value(s)
==2674023==    at 0x58B37F: PyUnicode_Decode (in /usr/bin/python3.8)
==2674023==    by 0x58B6D4: PyUnicode_FromEncodedObject (in /usr/bin/python3.8)
==2674023==    by 0x577DBA: ??? (in /usr/bin/python3.8)
==2674023==    by 0x5F6872: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2674023==    by 0x57107B: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2674023==    by 0x59CDFA: ??? (in /usr/bin/python3.8)
==2674023==    by 0x5F68EE: _PyObject_MakeTpCall (in /usr/bin/python3.8)
==2674023==    by 0x57107B: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2674023==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2674023==    by 0x5F6342: _PyFunction_Vectorcall (in /usr/bin/python3.8)
==2674023==    by 0x570E45: _PyEval_EvalFrameDefault (in /usr/bin/python3.8)
==2674023==    by 0x56A0B9: _PyEval_EvalCodeWithName (in /usr/bin/python3.8)
==2674023== 
==2674023== 
==2674023== HEAP SUMMARY:
==2674023==     in use at exit: 3,625,841 bytes in 27,083 blocks
==2674023==   total heap usage: 111,776 allocs, 84,693 frees, 22,779,659 bytes allocated
==2674023== 
==2674023== LEAK SUMMARY:
==2674023==    definitely lost: 64 bytes in 1 blocks
==2674023==    indirectly lost: 1,056 bytes in 29 blocks
==2674023==      possibly lost: 1,053,003 bytes in 9,325 blocks
==2674023==    still reachable: 2,571,718 bytes in 17,728 blocks
==2674023==         suppressed: 0 bytes in 0 blocks
==2674023== Rerun with --leak-check=full to see details of leaked memory
==2674023== 
==2674023== Use --track-origins=yes to see where uninitialised values come from
==2674023== For lists of detected and suppressed errors, rerun with: -s
==2674023== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

@swamper123
Copy link

Did you run it through valgrind? Use-after-free might not crash the minimal example due to it simplicity but corruptions should be visible.

Had it run with valgrind and ANNOT_COUNT=1 :

 PYTHONMALLOC=malloc valgrind python3 main.py --leak-check=full
==17427== Memcheck, a memory error detector
==17427== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==17427== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==17427== Command: python3 main.py --leak-check=full
==17427== 
==17427== Conditional jump or move depends on uninitialised value(s)
==17427==    at 0x2F0364: UnknownInlinedFun (unicodeobject.c:3488)
==17427==    by 0x2F0364: PyUnicode_FromEncodedObject (unicodeobject.c:3361)
==17427==    by 0x2F0BC7: unicode_new (unicodeobject.c:15416)
==17427==    by 0x249C0A: UnknownInlinedFun (typeobject.c:1014)
==17427==    by 0x249C0A: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17427==    by 0x2CF54D: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:118)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:489)
==17427==    by 0x2CF54D: slot_tp_init (typeobject.c:6943)
==17427==    by 0x249C64: UnknownInlinedFun (typeobject.c:1026)
==17427==    by 0x249C64: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x61416AC: pdf_page_from_fz_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x601AF4F: Page_transformation_matrix (fitz_wrap.c:13748)
==17427==    by 0x6024093: _wrap_Page_transformation_matrix (fitz_wrap.c:22964)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==  Address 0x7c075b8 is 40 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x6125D40: pdf_page_transform (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x601AFF4: Page_transformation_matrix (fitz_wrap.c:13751)
==17427==    by 0x6024093: _wrap_Page_transformation_matrix (fitz_wrap.c:22964)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==  Address 0x7c07628 is 152 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x61416AC: pdf_page_from_fz_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x604C1FE: Page_rotation (fitz_wrap.c:13372)
==17427==    by 0x604C1FE: _wrap_Page_rotation (fitz_wrap.c:22447)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==  Address 0x7c075b8 is 40 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x604C18D: JM_page_rotation (fitz_wrap.c:4398)
==17427==    by 0x604C210: Page_rotation (fitz_wrap.c:13374)
==17427==    by 0x604C210: _wrap_Page_rotation (fitz_wrap.c:22447)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==  Address 0x7c07628 is 152 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x60EDEE4: pdf_annot_push_local_xref (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60DE7FA: is_allowed_subtype_wrap.isra.3 (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6025348: Annot_line_ends (fitz_wrap.c:15056)
==17427==    by 0x6025348: _wrap_Annot_line_ends (fitz_wrap.c:25971)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Address 0x7c07620 is 144 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x60EDF44: pdf_annot_pop_local_xref (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60DE87D: is_allowed_subtype_wrap.isra.3 (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6025348: Annot_line_ends (fitz_wrap.c:15056)
==17427==    by 0x6025348: _wrap_Annot_line_ends (fitz_wrap.c:25971)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Address 0x7c07620 is 144 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x604626D: Annot__setAP (fitz_wrap.c:14762)
==17427==    by 0x60463DF: _wrap_Annot__setAP (fitz_wrap.c:25658)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Address 0x7c07620 is 144 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 4
==17427==    at 0x607A01C: fz_drop_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x602691D: delete_Page (fitz_wrap.c:12565)
==17427==    by 0x602691D: _wrap_delete_Page (fitz_wrap.c:20888)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CD9D1: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CD9D1: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CD9D1: _PyFunction_Vectorcall (call.c:367)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CD9D1: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CD9D1: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CD9D1: _PyFunction_Vectorcall (call.c:367)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2D475C: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2D475C: UnknownInlinedFun (call.c:330)
==17427==    by 0x2D475C: UnknownInlinedFun (call.c:367)
==17427==    by 0x2D475C: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2D475C: PyObject_CallOneArg.lto_priv.7 (abstract.h:188)
==17427==    by 0x37C843: UnknownInlinedFun (typeobject.c:1512)
==17427==    by 0x37C843: slot_tp_finalize (typeobject.c:6992)
==17427==    by 0x24F26E: UnknownInlinedFun (object.c:195)
==17427==    by 0x24F26E: PyObject_CallFinalizerFromDealloc (object.c:213)
==17427==    by 0x278154: subtype_dealloc (typeobject.c:1265)
==17427==  Address 0x7c07590 is 0 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== 
==17427== HEAP SUMMARY:
==17427==     in use at exit: 3,983,836 bytes in 27,801 blocks
==17427==   total heap usage: 110,997 allocs, 83,196 frees, 17,807,527 bytes allocated
==17427== 
==17427== LEAK SUMMARY:
==17427==    definitely lost: 56 bytes in 1 blocks
==17427==    indirectly lost: 0 bytes in 0 blocks
==17427==      possibly lost: 3,092,043 bytes in 26,920 blocks
==17427==    still reachable: 891,737 bytes in 880 blocks
==17427==         suppressed: 0 bytes in 0 blocks
==17427== Rerun with --leak-check=full to see details of leaked memory
==17427== 
==17427== Use --track-origins=yes to see where uninitialised values come from
==17427== For lists of detected and suppressed errors, rerun with: -s
==17427== ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)


Same Program and stuff, just output with PyMuPDF==1.18.19:

PYTHONMALLOC=malloc valgrind python3 main.py --leak-check=full
==17427== Memcheck, a memory error detector
==17427== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==17427== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==17427== Command: python3 main.py --leak-check=full
==17427== 
==17427== Conditional jump or move depends on uninitialised value(s)
==17427==    at 0x2F0364: UnknownInlinedFun (unicodeobject.c:3488)
==17427==    by 0x2F0364: PyUnicode_FromEncodedObject (unicodeobject.c:3361)
==17427==    by 0x2F0BC7: unicode_new (unicodeobject.c:15416)
==17427==    by 0x249C0A: UnknownInlinedFun (typeobject.c:1014)
==17427==    by 0x249C0A: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17427==    by 0x2CF54D: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:118)
==17427==    by 0x2CF54D: UnknownInlinedFun (call.c:489)
==17427==    by 0x2CF54D: slot_tp_init (typeobject.c:6943)
==17427==    by 0x249C64: UnknownInlinedFun (typeobject.c:1026)
==17427==    by 0x249C64: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x61416AC: pdf_page_from_fz_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x601AF4F: Page_transformation_matrix (fitz_wrap.c:13748)
==17427==    by 0x6024093: _wrap_Page_transformation_matrix (fitz_wrap.c:22964)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==  Address 0x7c075b8 is 40 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x6125D40: pdf_page_transform (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x601AFF4: Page_transformation_matrix (fitz_wrap.c:13751)
==17427==    by 0x6024093: _wrap_Page_transformation_matrix (fitz_wrap.c:22964)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==  Address 0x7c07628 is 152 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x61416AC: pdf_page_from_fz_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x604C1FE: Page_rotation (fitz_wrap.c:13372)
==17427==    by 0x604C1FE: _wrap_Page_rotation (fitz_wrap.c:22447)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==  Address 0x7c075b8 is 40 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x604C18D: JM_page_rotation (fitz_wrap.c:4398)
==17427==    by 0x604C210: Page_rotation (fitz_wrap.c:13374)
==17427==    by 0x604C210: _wrap_Page_rotation (fitz_wrap.c:22447)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x364F36: proxy_getattr (weakrefobject.c:496)
==17427==    by 0x29C3A1: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==  Address 0x7c07628 is 152 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x60EDEE4: pdf_annot_push_local_xref (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60DE7FA: is_allowed_subtype_wrap.isra.3 (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6025348: Annot_line_ends (fitz_wrap.c:15056)
==17427==    by 0x6025348: _wrap_Annot_line_ends (fitz_wrap.c:25971)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Address 0x7c07620 is 144 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x60EDF44: pdf_annot_pop_local_xref (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60DE87D: is_allowed_subtype_wrap.isra.3 (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6025348: Annot_line_ends (fitz_wrap.c:15056)
==17427==    by 0x6025348: _wrap_Annot_line_ends (fitz_wrap.c:25971)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CEF64: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CEF64: UnknownInlinedFun (call.c:367)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CEF64: UnknownInlinedFun (abstract.h:188)
==17427==    by 0x2CEF64: property_descr_get (descrobject.c:1573)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1201)
==17427==    by 0x29C37E: UnknownInlinedFun (object.c:1280)
==17427==    by 0x29C37E: PyObject_GetAttr (object.c:890)
==17427==    by 0x2F273D: _PyEval_EvalFrameDefault (ceval.c:2994)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Address 0x7c07620 is 144 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 8
==17427==    at 0x604626D: Annot__setAP (fitz_wrap.c:14762)
==17427==    by 0x60463DF: _wrap_Annot__setAP (fitz_wrap.c:25658)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Address 0x7c07620 is 144 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== Invalid read of size 4
==17427==    at 0x607A01C: fz_drop_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x602691D: delete_Page (fitz_wrap.c:12565)
==17427==    by 0x602691D: _wrap_delete_Page (fitz_wrap.c:20888)
==17427==    by 0x28F05A: cfunction_vectorcall_O (methodobject.c:512)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CD9D1: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CD9D1: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CD9D1: _PyFunction_Vectorcall (call.c:367)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2CD9D1: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CD9D1: UnknownInlinedFun (call.c:330)
==17427==    by 0x2CD9D1: _PyFunction_Vectorcall (call.c:367)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F266E: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F266E: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F266E: _PyEval_EvalFrameDefault (ceval.c:3504)
==17427==    by 0x2D475C: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2D475C: UnknownInlinedFun (call.c:330)
==17427==    by 0x2D475C: UnknownInlinedFun (call.c:367)
==17427==    by 0x2D475C: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2D475C: PyObject_CallOneArg.lto_priv.7 (abstract.h:188)
==17427==    by 0x37C843: UnknownInlinedFun (typeobject.c:1512)
==17427==    by 0x37C843: slot_tp_finalize (typeobject.c:6992)
==17427==    by 0x24F26E: UnknownInlinedFun (object.c:195)
==17427==    by 0x24F26E: PyObject_CallFinalizerFromDealloc (object.c:213)
==17427==    by 0x278154: subtype_dealloc (typeobject.c:1265)
==17427==  Address 0x7c07590 is 0 bytes inside a block of size 208 free'd
==17427==    at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x60B5423: fz_free (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6051E4A: JM_refresh_page (fitz_wrap.c:5154)
==17427==    by 0x6051FC0: Annot__update_appearance (fitz_wrap.c:15049)
==17427==    by 0x60524AE: _wrap_Annot__update_appearance (fitz_wrap.c:25946)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==    by 0x2CE268: UnknownInlinedFun (call.c:396)
==17427==    by 0x2CE268: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2CE268: method_vectorcall (classobject.c:53)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:118)
==17427==    by 0x2F3295: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F3295: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F3295: _PyEval_EvalFrameDefault (ceval.c:3535)
==17427==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17427==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17427==  Block was alloc'd at
==17427==    at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==17427==    by 0x602063B: JM_Py_Malloc (fitz_wrap.c:3781)
==17427==    by 0x60B528B: do_scavenging_malloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x60B534F: fz_calloc (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079D86: fz_new_page_of_size (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6125FC1: pdf_load_page_imp (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6079EC4: fz_load_chapter_page (in /home/YYYYY/PycharmProjects/pythonProject222/venv/lib/python3.9/site-packages/fitz/_fitz.cpython-39-x86_64-linux-gnu.so)
==17427==    by 0x6020078: Document_load_page (fitz_wrap.c:9840)
==17427==    by 0x602F348: _wrap_Document_load_page (fitz_wrap.c:16878)
==17427==    by 0x259A8F: cfunction_call (methodobject.c:548)
==17427==    by 0x249CE5: _PyObject_MakeTpCall (call.c:191)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:116)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:103)
==17427==    by 0x2F74C6: UnknownInlinedFun (abstract.h:127)
==17427==    by 0x2F74C6: UnknownInlinedFun (ceval.c:5072)
==17427==    by 0x2F74C6: _PyEval_EvalFrameDefault (ceval.c:3487)
==17427== 
==17427== 
==17427== HEAP SUMMARY:
==17427==     in use at exit: 3,983,836 bytes in 27,801 blocks
==17427==   total heap usage: 110,997 allocs, 83,196 frees, 17,807,527 bytes allocated
==17427== 
==17427== LEAK SUMMARY:
==17427==    definitely lost: 56 bytes in 1 blocks
==17427==    indirectly lost: 0 bytes in 0 blocks
==17427==      possibly lost: 3,092,043 bytes in 26,920 blocks
==17427==    still reachable: 891,737 bytes in 880 blocks
==17427==         suppressed: 0 bytes in 0 blocks
==17427== Rerun with --leak-check=full to see details of leaked memory
==17427== 
==17427== Use --track-origins=yes to see where uninitialised values come from
==17427== For lists of detected and suppressed errors, rerun with: -s
==17427== ERROR SUMMARY: 9 errors from 9 contexts (suppressed: 0 from 0)
(venv) YYYYY@ltYYYYY:~/PycharmProjects/pythonProject222$ PYTHONMALLOC=malloc valgrind python3 main.py --leak-check=full
==17547== Memcheck, a memory error detector
==17547== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==17547== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==17547== Command: python3 main.py --leak-check=full
==17547== 
==17547== Conditional jump or move depends on uninitialised value(s)
==17547==    at 0x2F0364: UnknownInlinedFun (unicodeobject.c:3488)
==17547==    by 0x2F0364: PyUnicode_FromEncodedObject (unicodeobject.c:3361)
==17547==    by 0x2F0BC7: unicode_new (unicodeobject.c:15416)
==17547==    by 0x249C0A: UnknownInlinedFun (typeobject.c:1014)
==17547==    by 0x249C0A: _PyObject_MakeTpCall (call.c:191)
==17547==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17547==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17547==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17547==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17547==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17547==    by 0x2CF54D: UnknownInlinedFun (pycore_ceval.h:40)
==17547==    by 0x2CF54D: UnknownInlinedFun (call.c:330)
==17547==    by 0x2CF54D: UnknownInlinedFun (call.c:367)
==17547==    by 0x2CF54D: UnknownInlinedFun (call.c:118)
==17547==    by 0x2CF54D: UnknownInlinedFun (call.c:489)
==17547==    by 0x2CF54D: slot_tp_init (typeobject.c:6943)
==17547==    by 0x249C64: UnknownInlinedFun (typeobject.c:1026)
==17547==    by 0x249C64: _PyObject_MakeTpCall (call.c:191)
==17547==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17547==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17547==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17547==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17547==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17547==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17547==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17547==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17547==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17547==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17547==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17547==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17547==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17547==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17547==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17547== 
==17547== 
==17547== HEAP SUMMARY:
==17547==     in use at exit: 3,704,246 bytes in 27,925 blocks
==17547==   total heap usage: 103,129 allocs, 75,204 frees, 16,500,690 bytes allocated
==17547== 
==17547== LEAK SUMMARY:
==17547==    definitely lost: 64 bytes in 1 blocks
==17547==    indirectly lost: 48 bytes in 2 blocks
==17547==      possibly lost: 3,162,166 bytes in 27,701 blocks
==17547==    still reachable: 541,968 bytes in 221 blocks
==17547==         suppressed: 0 bytes in 0 blocks
==17547== Rerun with --leak-check=full to see details of leaked memory
==17547== 
==17547== Use --track-origins=yes to see where uninitialised values come from
==17547== For lists of detected and suppressed errors, rerun with: -s
==17547== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)


With version 1.18.18:


 PYTHONMALLOC=malloc valgrind python3 main.py --leak-check=full
==17667== Memcheck, a memory error detector
==17667== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==17667== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
==17667== Command: python3 main.py --leak-check=full
==17667== 
==17667== Conditional jump or move depends on uninitialised value(s)
==17667==    at 0x2F0364: UnknownInlinedFun (unicodeobject.c:3488)
==17667==    by 0x2F0364: PyUnicode_FromEncodedObject (unicodeobject.c:3361)
==17667==    by 0x2F0BC7: unicode_new (unicodeobject.c:15416)
==17667==    by 0x249C0A: UnknownInlinedFun (typeobject.c:1014)
==17667==    by 0x249C0A: _PyObject_MakeTpCall (call.c:191)
==17667==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17667==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17667==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17667==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17667==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17667==    by 0x2CF54D: UnknownInlinedFun (pycore_ceval.h:40)
==17667==    by 0x2CF54D: UnknownInlinedFun (call.c:330)
==17667==    by 0x2CF54D: UnknownInlinedFun (call.c:367)
==17667==    by 0x2CF54D: UnknownInlinedFun (call.c:118)
==17667==    by 0x2CF54D: UnknownInlinedFun (call.c:489)
==17667==    by 0x2CF54D: slot_tp_init (typeobject.c:6943)
==17667==    by 0x249C64: UnknownInlinedFun (typeobject.c:1026)
==17667==    by 0x249C64: _PyObject_MakeTpCall (call.c:191)
==17667==    by 0x2F6F95: UnknownInlinedFun (abstract.h:116)
==17667==    by 0x2F6F95: UnknownInlinedFun (abstract.h:103)
==17667==    by 0x2F6F95: UnknownInlinedFun (abstract.h:127)
==17667==    by 0x2F6F95: UnknownInlinedFun (ceval.c:5072)
==17667==    by 0x2F6F95: _PyEval_EvalFrameDefault (ceval.c:3518)
==17667==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17667==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17667==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17667==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:118)
==17667==    by 0x2F6DF4: UnknownInlinedFun (abstract.h:127)
==17667==    by 0x2F6DF4: UnknownInlinedFun (ceval.c:5072)
==17667==    by 0x2F6DF4: _PyEval_EvalFrameDefault (ceval.c:3487)
==17667==    by 0x2CC7B0: UnknownInlinedFun (pycore_ceval.h:40)
==17667==    by 0x2CC7B0: _PyEval_EvalCode (ceval.c:4327)
==17667==    by 0x2CDB75: _PyFunction_Vectorcall (call.c:396)
==17667== 
==17667== 
==17667== HEAP SUMMARY:
==17667==     in use at exit: 3,704,120 bytes in 27,925 blocks
==17667==   total heap usage: 103,129 allocs, 75,204 frees, 16,500,366 bytes allocated
==17667== 
==17667== LEAK SUMMARY:
==17667==    definitely lost: 64 bytes in 1 blocks
==17667==    indirectly lost: 48 bytes in 2 blocks
==17667==      possibly lost: 3,162,040 bytes in 27,701 blocks
==17667==    still reachable: 541,968 bytes in 221 blocks
==17667==         suppressed: 0 bytes in 0 blocks
==17667== Rerun with --leak-check=full to see details of leaked memory
==17667== 
==17667== Use --track-origins=yes to see where uninitialised values come from
==17667== For lists of detected and suppressed errors, rerun with: -s
==17667== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

@JorjMcKie
Copy link
Collaborator

Hi everyone, I think I have found the issue: It was introduced in v1.19.x.
I will publish a fix in the next version, 1.19.2.

Thanks to everyone for bringing this up and all the help to track this down!

@ptwz
Copy link
Author

ptwz commented Nov 12, 2021

Great news! Thank you for staying with us on this quite weird problem.

@JorjMcKie
Copy link
Collaborator

If you give me a list of platform / Py version, I can make preliminary wheels to try out / confirm for you.

@fiee
Copy link

fiee commented Nov 12, 2021

For me, it’s Py3.9 / Mac-i64 and Py3.7 / Linux-64.
@pwtz has Py3.8 / Linux-64, our Jenkins server runs Py3.6 / Linux-64, and @swamper123 wrote about Py3.9 / Linux-64.
Everyone’s Linux is Debian-based, no strange things like Alpine ;)

@JorjMcKie
Copy link
Collaborator

@fiee - ok, I will let you know from where to download.

@JorjMcKie
Copy link
Collaborator

Ok these are the wheels. Look at the bottom under "Artifacts". The file there is a ZIP which wraps the resp. wheel.
Mac OSX Py 3.9: https://github.com/JorjMcKie/py-mupdf/actions/runs/1454188486

Linux Py 3.6: https://github.com/JorjMcKie/py-mupdf/actions/runs/1454208384
Linux Py 3.7: https://github.com/JorjMcKie/py-mupdf/actions/runs/1454211793
Linux Py 3.8: https://github.com/JorjMcKie/py-mupdf/actions/runs/1454177021
Linux Py 3.9: https://github.com/JorjMcKie/py-mupdf/actions/runs/1454643067

@ptwz
Copy link
Author

ptwz commented Nov 12, 2021

Works like a charm for 3.7 and 3.8 on linux 64, both on minimal example and production code.

Thank you very much, it seems to fix the problem in my test cases.

@fiee, @swamper123 : Please recheck.

@fiee
Copy link

fiee commented Nov 14, 2021

Works flawlessly on my Mac, but valgrind still lists many problems on my Linux machine. They’re all about (possibly/definitely) lost blocks in lost records (from vg_replace_malloc.c:299) – I guess that might be harmless?
valgrind_pureos.log

@swamper123
Copy link

Looks good, same output as in the older versions.

@JorjMcKie
Copy link
Collaborator

Resolved by version 1.19.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants