Bug#1107787: paperwork: flaky autopkgtest on s390x: cannot convert float NaN to integer
Paul Gevers <[email protected]>
| Newsgroups | gmane.linux.debian.ports.s390 |
|---|---|
| Message-ID | <b11ac9ec-0a89-4d79-8caf-d5ab9497e48f__45933.975993988$1749922291$gmane$org@debian.org> |
Source: paperwork Version: 2.2.5-2 Severity: serious User: [email protected] Usertags: flaky User: [email protected] Usertags: s390x X-Debbugs-CC: [email protected] 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
(application/pgp-signature, 585 B)
-----BEGIN PGP SIGNATURE----- wsC7BAABCABvBYJoTbE4CRCcXJnrBb11CkcUAAAAAAAeACBzYWx0QG5vdGF0aW9u cy5zZXF1b2lhLXBncC5vcmejPeeDE+15pjJSXakbEzTF+nb/hv7hgh65zchstHef xBYhBFi2bUhza+k7BS3mcpxcmesFvXUKAACTnwgAj5z5asnwjK4U8Ydu3pOxCNN/ scRnpjjwpIJweo8dV4U7TvC9+HzSwsP41tveXiSFsDA9cxJkAZZLn3TT5raZCSku PHwgrlAwgaLhjXefF8lT8iik+R1RfC2LoQmmZBXGa0sFRA9aZ8E4ocjeGvcC293A 6p2FTz+Y0AXNB7XGr4ofojYPlRF2bXnhU1YSC5qZPPMeWP9Q6zJ5G08Y5uNcnj9A cATRH5H7IYds0bLUtE2whlngJ50tNFhGLPbV3Rez85WZpDn4mXKGz/8POFBrtxey uWIGYkBsx1RaGtYPn8TXNHMo5wP3TVdVRuSRpi6MMps4QmCOyglM0LZx9JIEzw== =BqlQ -----END PGP SIGNATURE-----