Source: paperwork Version: 2.2.5-2 Severity: serious User: debian-ci@lists.debian.org Usertags: flaky User: debian-s390@lists.debian.org Usertags: s390x X-Debbugs-CC: debian-s390@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/61163824386s =================================== FAILURES =================================== 386s ________________________ TestPageExport.test_pdf_to_img ________________________
386s386s 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_cause386s /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 exc386s /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 exc386s /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 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
386s386s 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 386s386s /usr/lib/python3/dist-packages/paperwork_backend/model/pdf.py:24: ValueError
Attachment:
OpenPGP_signature.asc
Description: OpenPGP digital signature