https://bugs.documentfoundation.org/show_bug.cgi?id=172631
Bug ID: 172631
Summary: Writer aborts (SIGABRT via JVM signal handler)
exporting a footnote to ODF during AutoRecovery,
triggered by Zotero citation refresh
Product: LibreOffice
Version: 26.2.4.2 release
Hardware: x86-64 (AMD64)
OS: Linux (All)
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Writer
Assignee: [email protected]
Reporter: [email protected]
Description:
soffice.bin crashes with SIGABRT while AutoRecovery/autosave exports the
document to ODF. The native fault happens inside libswlo.so/libxolo.so
while exporting a footnote (XMLTextParagraphExport::exportTextFootnote /
exportTextFootnoteHelper -> exportParagraph -> ...). Because a Java-based
extension (LanguageTool/WritingTool) is loaded in the process, the JVM's
own signal handler (JVM_handle_linux_signal in libjvm.so) intercepts the
native crash and turns it into abort(), so the process dies with SIGABRT
instead of SIGSEGV.
The crash is consistently triggered a few seconds after the Zotero
LibreOffice Integration extension performs a citation "refresh" (visible
in the log as "ZoteroOpenOfficeIntegration: Executing refresh"), which
marks the document dirty and causes AutoRecovery's background save to
fire (SfxBaseModel::storeToRecoveryFile -> SaveAsOwnFormat).
Steps to Reproduce:
1. Open a Writer document (.odt or .docx) that has footnotes, at least
one containing a Zotero citation field.
2. Have Zotero desktop running with the "Zotero LibreOffice Integration"
extension connected.
3. Trigger a citation refresh from Zotero (e.g. via the Zotero toolbar
"Refresh" button, or any action that calls the integration's refresh).
4. Let AutoRecovery's periodic background save fire (or wait ~1 min).
Actual Results:
soffice.bin aborts. Reproduced identically 3 times in one session
(2026-07-01, at 07:06:51, 07:20:50 and 07:24:19), all with the same
top-of-stack signatur
Expected Results:
AutoRecovery/export should not crash Writer regardless of the state of a
citation field/footnote after an external refresh.
Reproducible: Always
User Profile Reset: No
Additional Info:
Environment:
- LibreOffice 26.2.4.2 (Build:2), Arch package libreoffice-fresh 26.2.4-3
- libswlo.so Build ID: 426ad2635a0b8c81981c1c1f0570839952ebd07c
- OS: Garuda Linux (Arch-based), kernel 7.1.2-3-cachyos
- VCL backend: Qt6 (kwin/Plasma session)
- Zotero 9.0.4, "Zotero LibreOffice Integration" extension active
- WritingTool (LanguageTool) 26.4.1 also loaded (Java-based extension —
this is why a JVM signal handler is present in the crashing thread)
Backtrace of the crashing thread (2026-07-01 07:24:19, PID 12800):
Signal: 6 (ABRT) si_code: SI_TKILL
#0 abort (libc.so.6 + 0x256e2)
#1 n/a (libuno_sal.so.3 + 0x4cbd5)
#2 n/a (libjvm.so + 0xbe18a3)
#3 JVM_handle_linux_signal (libjvm.so + 0xbe1c85)
#4 n/a (libc.so.6 + 0x3e270)
#5 n/a (libswlo.so + 0xae6e96)
#6 n/a (libswlo.so + 0xae0525)
#7 XMLTextParagraphExport::exportParagraph(...) (libxolo.so + 0x3c1da4)
#8 XMLTextParagraphExport::exportTextContentEnumeration(...) (libxolo.so +
0x3c45ce)
#9 XMLTextParagraphExport::exportText(...) (libxolo.so + 0x3b9f78)
#10 XMLTextParagraphExport::exportTextFootnote(...) (libxolo.so + 0x39979e)
#11 XMLTextParagraphExport::exportTextRangeEnumeration(...) (libxolo.so +
0x3bf681)
#12 XMLTextParagraphExport::exportParagraph(...) (libxolo.so + 0x3c1ec9)
#13 XMLTextParagraphExport::exportTextContentEnumeration(...) (libxolo.so +
0x3c45ce)
#14 XMLTextParagraphExport::exportText(...) (libxolo.so + 0x3b9f78)
#15 XMLTextParagraphExport::collectTextAutoStylesAndNodeExportOrder(...)
(libxolo.so + 0x3bac8b)
...
#27 SfxObjectShell::SaveAsOwnFormat(SfxMedium&) (libsfxlo.so + 0x374d4a)
#31 SfxBaseModel::storeToRecoveryFile(...) (libsfxlo.so + 0x3924e2)
...
DispatchUserEvents / QtInstance::ImplYield (main event loop)
A second occurrence (PID 15952) shows the same path going through
exportTextFootnoteHelper explicitly:
#10 XMLTextParagraphExport::exportTextFootnoteHelper(...) (libxolo.so +
0x399361)
A third occurrence (PID 6503) crashes one call earlier, comparing property
values while exporting the same footnote paragraph:
#6 uno_type_equalData (libuno_cppu.so.3 + 0x193ee)
#7 XMLPropertyHandler::equals(...) (libxolo.so + 0x3165ad)
#8 n/a (libswlo.so + 0xae6e61)
#9 n/a (libswlo.so + 0xae0525)
#13 XMLTextParagraphExport::exportTextFootnote(...) (libxolo.so + 0x39979e)
Note: libswlo.so is stripped (no exported symbols for the crashing
frames), so an addr2line/gdb session against a debug build, or a
debuginfod-enabled backtrace, would be needed to pin down the exact line.
Happy to provide the raw core dump or run further diagnostics on request.
--
You are receiving this mail because:
You are the assignee for the bug.