When exporting certain documents to PDF, Paperwork always segfaults with no warning, always while exporting one particular page too. There’s nothing suspicious seeming in the logs either, from export onwards it just reads
INFO ] [openpaperwork_gtk.widgets.progress] Task 'export' has started (0 already active)
[WARNING] [openpaperwork_core.perfcheck.log] Task 'url_to_pillow(file:///home/uni/papers/20240124_2151_26/paper.1.png)' took 241ms (> 200ms) ! ({'size': (2552, 3508)})
[WARNING] [openpaperwork_core.perfcheck.log] Task 'url_to_pillow(file:///home/uni/papers/20240124_2151_26/paper.2.png)' took 206ms (> 200ms) ! ({'size': (2552, 3508)})
[WARNING] [openpaperwork_core.perfcheck.log] Task 'url_to_pillow(file:///home/uni/papers/20240124_2151_26/paper.5.png)' took 211ms (> 200ms) ! ({'size': (2552, 3508)})
[WARNING] [openpaperwork_core.perfcheck.log] Task 'url_to_pillow(file:///home/uni/papers/20240124_2151_26/paper.6.png)' took 226ms (> 200ms) ! ({'size': (2552, 3508)})
[1] 34420 segmentation fault (core dumped) paperwork
The logfile ends with
Fatal Python error: Segmentation fault
Thread 0x00007f617d7fa6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 629 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/mainloop/glib.py", line 228 in mainloop_execute
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/__init__.py", line 453 in call_one
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/widgets/progress/__init__.py", line 90 in _thread
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 982 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f617dffb6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f617e7fc6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f617effd6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f617f7fe6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f617ffff6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61a0ff96c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61a17fa6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61a1ffb6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61a27fc6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 629 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/mainloop/glib.py", line 228 in mainloop_execute
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/__init__.py", line 453 in call_one
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/paperwork_backend/docexport/pdf.py", line 282 in do
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/promise.py", line 235 in _threaded_do
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/__init__.py", line 27 in do
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 27 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61b09496c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61a37fe6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Thread 0x00007f61a2ffd6c0 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 327 in wait
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/queue.py", line 171 in get
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/thread/pool.py", line 24 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1045 in _bootstrap_inner
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/threading.py", line 1002 in _bootstrap
Current thread 0x00007f6200823580 (most recent call first):
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/paperwork_backend/docexport/pdf.py", line 201 in next_page
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/mainloop/glib.py", line 218 in get_result
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/mainloop/glib.py", line 160 in decorator
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/gi/overrides/GLib.py", line 497 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/mainloop/glib.py", line 66 in mainloop
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/__init__.py", line 453 in call_one
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/gtk_init.py", line 88 in _on_activate
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/paperwork_gtk/main.py", line 193 in gtk_main
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/gi/overrides/Gio.py", line 42 in run
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_gtk/gtk_init.py", line 70 in gtk_init
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/openpaperwork_core/__init__.py", line 405 in call_all
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/paperwork_gtk/main.py", line 218 in main_main
File "/tmp/.mount_paperwAiLj3k/usr/lib/python3.11/site-packages/paperwork_gtk/main.py", line 236 in main
File "/tmp/.mount_paperwAiLj3k/usr/bin/paperwork-gtk", line 8 in <module>
Extension modules: ...
Everything above that doesn’t seem relevant, but if it helps I’ll upload the full log too.
I’m currently using the AppImage version, but this also happened on the 2.1.2 official .deb and the self-compiled dev version.
When I delete all the .words files in a document’s folder, the export works, so it ought to be related to the OCR.
The .words file are all valid XHTML though so it seems to go beyond simple corruption issues.
Any ideas?
After even more investigating,
the error is caused by self.pdf_context.save()
on line 136, in paperwork_backend/docexport/pdf.py.
This more or less only wraps the cairo_save C function, no clue what might cause this though.