[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1107787: paperwork: flaky autopkgtest on s390x: cannot convert float NaN to integer



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/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

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


Reply to: