-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Open
Description
There seems to be some kind of pickling issue:
_________________________________ test_semfree _________________________________
[gw0] linux -- Python 3.14.0 /usr/bin/python3
resources = PosixPath('/builddir/build/BUILD/ocrmypdf-16.10.4-build/ocrmypdf-16.10.4/tests/resources')
outpdf = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_semfree0/out.pdf')
@pytest.mark.skipif(not is_linux(), reason='semfree plugin only works on Linux')
def test_semfree(resources, outpdf):
exitcode = run_ocrmypdf_api(
resources / 'multipage.pdf',
outpdf,
'--skip-text',
'--skip-big',
'2',
'--plugin',
'ocrmypdf.extra_plugins.semfree',
'--plugin',
'tests/plugins/tesseract_noop.py',
)
> assert exitcode in (ExitCode.ok, ExitCode.pdfa_conversion_failed)
E assert <ExitCode.other_error: 15> in (<ExitCode.ok: 0>, <ExitCode.pdfa_conversion_failed: 10>)
tests/test_semfree.py:26: AssertionError
------------------------------ Captured log call -------------------------------
WARNING ocrmypdf._pipeline:_pipeline.py:382 page too big, skipping OCR (81.0 MPixels > 2.0 MPixels --skip-big)
WARNING ocrmypdf._pipeline:_pipeline.py:382 page too big, skipping OCR (2.0 MPixels > 2.0 MPixels --skip-big)
WARNING ocrmypdf._metadata:_metadata.py:63 Some input metadata could not be copied because it is not permitted in PDF/A. You may wish to examine the output PDF's XMP metadata.
ERROR ocrmypdf._pipelines._common:_common.py:296 An exception occurred while executing the pipeline
Traceback (most recent call last):
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/_pipelines/_common.py", line 261, in cli_exception_handler
return fn(options, plugin_manager)
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/_pipelines/ocr.py", line 181, in _run_pipeline
optimize_messages = exec_concurrent(context, executor)
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/_pipelines/ocr.py", line 145, in exec_concurrent
pdf, messages = postprocess(pdf, context, executor)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/_pipelines/_common.py", line 460, in postprocess
return optimize_pdf(pdf_out, context, executor)
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/_pipeline.py", line 992, in optimize_pdf
output_pdf, messages = context.plugin_manager.hook.optimize_pdf(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
input_pdf=input_file,
^^^^^^^^^^^^^^^^^^^^^
...<3 lines>...
linearize=should_linearize(input_file, context),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/usr/lib/python3.14/site-packages/pluggy/_hooks.py", line 512, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.14/site-packages/pluggy/_callers.py", line 167, in _multicall
raise exception
File "/usr/lib/python3.14/site-packages/pluggy/_callers.py", line 121, in _multicall
res = hook_impl.function(*args)
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/builtin_plugins/optimize.py", line 145, in optimize_pdf
result_path = optimize(input_pdf, output_pdf, context, save_settings, executor)
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/optimize.py", line 712, in optimize
deflate_jpegs(pdf, root, options, executor)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/optimize.py", line 582, in deflate_jpegs
executor(
~~~~~~~~^
use_threads=True, # We're sharing the pdf directly, must use threads
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...<9 lines>...
task_finished=finish,
^^^^^^^^^^^^^^^^^^^^^
)
^
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/_concurrent.py", line 78, in __call__
self._execute(
~~~~~~~~~~~~~^
use_threads=use_threads,
^^^^^^^^^^^^^^^^^^^^^^^^
...<5 lines>...
task_finished=task_finished,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/builddir/build/BUILD/ocrmypdf-16.10.4-build/BUILDROOT/usr/lib/python3.14/site-packages/ocrmypdf/extra_plugins/semfree.py", line 157, in _execute
process.start()
~~~~~~~~~~~~~^^
File "/usr/lib64/python3.14/multiprocessing/process.py", line 121, in start
self._popen = self._Popen(self)
~~~~~~~~~~~^^^^^^
File "/usr/lib64/python3.14/multiprocessing/context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/context.py", line 300, in _Popen
return Popen(process_obj)
File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line 35, in __init__
super().__init__(process_obj)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/popen_fork.py", line 20, in __init__
self._launch(process_obj)
~~~~~~~~~~~~^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/popen_forkserver.py", line 47, in _launch
reduction.dump(process_obj, buf)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.14/multiprocessing/reduction.py", line 60, in dump
ForkingPickler(file, protocol).dump(obj)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'pikepdf._core.Pdf' object
when serializing tuple item 0
when serializing list item 0
when serializing tuple item 4
when serializing dict item '_args'
when serializing multiprocessing.context.Process state
when serializing multiprocessing.context.Process object
dreua
Metadata
Metadata
Assignees
Labels
No labels