--- Begin Message ---
Source: paperwork
Version: 2.2.5-2
Severity: serious
User: debian...@lists.debian.org
Usertags: flaky
User: debian-s...@lists.debian.org
Usertags: s390x
X-Debbugs-CC: debian-s...@lists.debian.org
Dear maintainer(s),
I looked at the results of the autopkgtest of your package because it
showed up as a regression for jq. I noticed that it regularly fails on
s390x since March 2025 and it now fails more often than it passes.
I recall there was something special with NaN on s390x, but I can't find
it. Maybe I'm mixing up with ppc64el which recently was on my radar
because of another NaN bug.
Because the unstable-to-testing migration software now blocks on
regressions in testing, flaky tests, i.e. tests that flip between
passing and failing without changes to the list of installed packages,
are causing people unrelated to your package to spend time on these
tests.
Don't hesitate to reach out if you need help and some more information
from our infrastructure.
Paul
https://ci.debian.net/packages/p/paperwork/testing/s390x/61163824
386s =================================== FAILURES
===================================
386s ________________________ TestPageExport.test_pdf_to_img
________________________
386s
386s self = <tests.docexport.tests_export.TestPageExport
testMethod=test_pdf_to_img>
386s
386s def test_pdf_to_img(self):
386s pipeline = [
386s self.core.call_success("export_get_pipe_by_name",
"img_boxes"),
386s self.core.call_success("export_get_pipe_by_name",
"unpaper"),
386s self.core.call_success("export_get_pipe_by_name",
"swt_soft"),
386s self.core.call_success("export_get_pipe_by_name", "png"),
386s ]
386s result = None
386s
386s def origin():
386s return paperwork_backend.docexport.ExportData.build_page(
386s # 1st page of the PDF
386s "some_doc_id", self.test_doc_pdf_url, 0
386s )
386s
386s def set_result(r):
386s nonlocal result
386s result = r
386s
386s promise = openpaperwork_core.promise.Promise(self.core, origin)
386s for pipe in pipeline:
386s promise = promise.then(pipe.get_promise(result='preview'))
386s promise = promise.then(set_result)
386s promise = promise.then(self.core.call_all,
"mainloop_quit_graceful")
386s promise = promise.schedule()
386s > self.core.call_one("mainloop")
386s
386s tests/docexport/tests_export.py:118:
386s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _
386s /usr/lib/python3/dist-packages/openpaperwork_core/__init__.py:449:
in call_one
386s return callbacks[0][2](*args, **kwargs)
386s
/usr/lib/python3/dist-packages/openpaperwork_gtk/mainloop/glib.py:79: in
mainloop
386s raise halt_cause
386s
/usr/lib/python3/dist-packages/openpaperwork_gtk/mainloop/glib.py:160:
in decorator
386s func(*args, **kwargs)
386s /usr/lib/python3/dist-packages/openpaperwork_core/promise.py:80: in
on_error
386s t.on_error(exc, hide_caught_exceptions)
386s /usr/lib/python3/dist-packages/openpaperwork_core/promise.py:80: in
on_error
386s t.on_error(exc, hide_caught_exceptions)
386s /usr/lib/python3/dist-packages/openpaperwork_core/promise.py:108:
in on_error
386s raise exc
386s /usr/lib/python3/dist-packages/openpaperwork_core/promise.py:235:
in _threaded_do
386s our_r = self.func(*args, **self.kwargs)
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/img.py:141:
in export
386s for (doc_set, (doc, (page, img_boxes))) in list_img_boxes:
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/__init__.py:70:
in iter
386s for s in c.iter(dtype):
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/__init__.py:70:
in iter
386s for s in c.iter(dtype):
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/__init__.py:69:
in iter
386s for c in self.get_children():
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/__init__.py:231:
in get_children
386s for img_boxes in children:
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/__init__.py:231:
in get_children
386s for img_boxes in children:
386s
/usr/lib/python3/dist-packages/paperwork_backend/docexport/img.py:50: in
get_children
386s boxes = self.core.call_success(
386s /usr/lib/python3/dist-packages/openpaperwork_core/__init__.py:498:
in call_success
386s r = callback(*args, **kwargs)
386s /usr/lib/python3/dist-packages/paperwork_backend/model/pdf.py:775:
in page_get_boxes_by_url
386s return self.core.call_one(
386s /usr/lib/python3/dist-packages/openpaperwork_core/__init__.py:449:
in call_one
386s return callbacks[0][2](*args, **kwargs)
386s
/usr/lib/python3/dist-packages/openpaperwork_gtk/mainloop/glib.py:231:
in mainloop_execute
386s raise exc
386s
/usr/lib/python3/dist-packages/openpaperwork_gtk/mainloop/glib.py:218:
in get_result
386s out = func(*args, **kwargs)
386s /usr/lib/python3/dist-packages/paperwork_backend/model/pdf.py:761:
in _page_get_boxes_by_url
386s word_box = PdfWordBox(word, word_rects)
386s /usr/lib/python3/dist-packages/paperwork_backend/model/pdf.py:41:
in __init__
386s self.position = minmax_rects(position)
386s _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _
386s
386s rects = [<Poppler.Rectangle object at 0x3ff9039cdd0
(PopplerRectangle at 0x3cfb5e0)>, <Poppler.Rectangle object at
0x3ff9039ce...9039ce90 (PopplerRectangle at 0x3cfb620)>,
<Poppler.Rectangle object at 0x3ff9039cef0 (PopplerRectangle at 0x3cfb640)>]
386s
386s def minmax_rects(rects):
386s (mx1, my1, mx2, my2) = (math.inf, math.inf, 0, 0)
386s for rectangle in rects:
386s ((x1, y1), (x2, y2)) = (
386s (int(rectangle.x1 * PDF_RENDER_FACTOR),
386s > int(rectangle.y2 * PDF_RENDER_FACTOR)),
386s (int(rectangle.x2 * PDF_RENDER_FACTOR),
386s int(rectangle.y1 * PDF_RENDER_FACTOR))
386s )
386s E ValueError: cannot convert float NaN to integer
386s
386s /usr/lib/python3/dist-packages/paperwork_backend/model/pdf.py:24:
ValueError
OpenPGP_signature.asc
Description: OpenPGP digital signature
--- End Message ---