Bug 153364 - FILEOPEN ODT Document exported from PSPP is detected as broken
Summary: FILEOPEN ODT Document exported from PSPP is detected as broken
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
4.2.0.4 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: File-Opening
  Show dependency treegraph
 
Reported: 2023-02-03 23:10 UTC by elias estatistics
Modified: 2024-09-20 16:04 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
pspp created document (318.11 KB, application/vnd.oasis.opendocument.text)
2023-02-03 23:10 UTC, elias estatistics
Details
spv file to open from pspp, and then save as odt file, which dont open (82.52 KB, application/x-spss-spv)
2023-02-04 21:46 UTC, elias estatistics
Details

Note You need to log in before you can comment on or make changes to this bug.
Description elias estatistics 2023-02-03 23:10:38 UTC
Created attachment 185100 [details]
pspp created document

libreoffice writer dont open odt document  in linux bullseye 11.

The writer is running and only its title bar appears and nothing else. 

No document is opened. 

document was created by pspp. I have opened many other odt pspp-saved documents from writer normally.
Comment 1 Julien Nabet 2023-02-04 08:45:10 UTC
On pc Debian x86-64 with master sources updated today, I could reproduce this.

I retrieved a bt at random:
#0  0x00007f28feacda0f in GetNextAttrImpl(SwTextNode const*, unsigned long, unsigned long, int) (pTextNode=0x559899a27880, nStartIndex=0, nEndIndex=0, nPosition=163909) at sw/source/core/text/itratr.cxx:708
#1  0x00007f28feacdb97 in SwAttrIter::GetNextAttr() const (this=0x7fff3a8e2680) at sw/source/core/text/itratr.cxx:740
#2  0x00007f28feaee035 in SwTextFormatter::NewTextPortion(SwTextFormatInfo&) (this=0x7fff3a8e2680, rInf=...) at sw/source/core/text/itrform2.cxx:1302
#3  0x00007f28feaea0b4 in SwTextFormatter::NewPortion(SwTextFormatInfo&, std::optional<o3tl::strong_int<int, Tag_TextFrameIndex> >)
    (this=0x7fff3a8e2680, rInf=..., oMovedFlyIndex=std::optional<o3tl::strong_int<int, Tag_TextFrameIndex>> [no contained value]) at sw/source/core/text/itrform2.cxx:1754
#4  0x00007f28feae66b2 in SwTextFormatter::BuildPortions(SwTextFormatInfo&) (this=0x7fff3a8e2680, rInf=...) at sw/source/core/text/itrform2.cxx:440
#5  0x00007f28feaefba3 in SwTextFormatter::FormatLine(o3tl::strong_int<int, Tag_TextFrameIndex>) (this=0x7fff3a8e2680, nStartPos=...) at sw/source/core/text/itrform2.cxx:1928
#6  0x00007f28fea9b3d3 in SwTextFrame::FormatLine(SwTextFormatter&, bool) (this=0x55989b582170, rLine=..., bPrev=false) at sw/source/core/text/frmform.cxx:1212
#7  0x00007f28fea9d7f3 in SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) (this=0x55989b582170, rLine=..., rInf=..., bAdjust=false) at sw/source/core/text/frmform.cxx:1572
#8  0x00007f28fea9e52a in SwTextFrame::Format_(OutputDevice*, SwParaPortion*) (this=0x55989b582170, pRenderContext=0x559899b32650, pPara=0x55989a7687c0) at sw/source/core/text/frmform.cxx:1762
#9  0x00007f28fea9f84f in SwTextFrame::Format(OutputDevice*, SwBorderAttrs const*) (this=0x55989b582170, pRenderContext=0x559899b32650) at sw/source/core/text/frmform.cxx:1942
#10 0x00007f28fe83d9b4 in SwContentFrame::MakeAll(OutputDevice*) (this=0x55989b582170) at sw/source/core/layout/calcmove.cxx:1515
#11 0x00007f28fe834d6d in SwFrame::PrepareMake(OutputDevice*) (this=0x55989b582170, pRenderContext=0x559899b32650) at sw/source/core/layout/calcmove.cxx:286
#12 0x00007f28fe9985ee in SwFrame::Calc(OutputDevice*) const (this=0x55989b582170, pRenderContext=0x559899b32650) at sw/source/core/layout/trvlfrm.cxx:1803
#13 0x00007f28fea95f03 in SwTextFrame::CalcFollow(o3tl::strong_int<int, Tag_TextFrameIndex>) (this=0x559899f58e20, nTextOfst=...) at sw/source/core/text/frmform.cxx:281
#14 0x00007f28fea9922e in SwTextFrame::AdjustFollow_(SwTextFormatter&, o3tl::strong_int<int, Tag_TextFrameIndex>, o3tl::strong_int<int, Tag_TextFrameIndex>, unsigned char)
    (this=0x559899f58e20, rLine=..., nOffset=..., nEnd=..., nMode=1 '\001') at sw/source/core/text/frmform.cxx:611
#15 0x00007f28fea9b0c1 in SwTextFrame::FormatAdjust(SwTextFormatter&, WidowsAndOrphans&, o3tl::strong_int<int, Tag_TextFrameIndex>, bool)
    (this=0x559899f58e20, rLine=..., rFrameBreak=..., nStrLen=..., bDummy=false) at sw/source/core/text/frmform.cxx:1189
#16 0x00007f28fea9df3d in SwTextFrame::Format_(SwTextFormatter&, SwTextFormatInfo&, bool) (this=0x559899f58e20, rLine=..., rInf=..., bAdjust=false) at sw/source/core/text/frmform.cxx:1655
#17 0x00007f28fea9e52a in SwTextFrame::Format_(OutputDevice*, SwParaPortion*) (this=0x559899f58e20, pRenderContext=0x559899b32650, pPara=0x55989a756290) at sw/source/core/text/frmform.cxx:1762
#18 0x00007f28fea9f84f in SwTextFrame::Format(OutputDevice*, SwBorderAttrs const*) (this=0x559899f58e20, pRenderContext=0x559899b32650) at sw/source/core/text/frmform.cxx:1942
#19 0x00007f28fe83d9b4 in SwContentFrame::MakeAll(OutputDevice*) (this=0x559899f58e20) at sw/source/core/layout/calcmove.cxx:1515
#20 0x00007f28fe835742 in SwFrame::PrepareMake(OutputDevice*) (this=0x559899f58e20, pRenderContext=0x559899b32650) at sw/source/core/layout/calcmove.cxx:375
#21 0x00007f28fe9985ee in SwFrame::Calc(OutputDevice*) const (this=0x559899f58e20, pRenderContext=0x559899b32650) at sw/source/core/layout/trvlfrm.cxx:1803
#22 0x00007f28fe980445 in SwContentFrame::CalcLowers(SwLayoutFrame&, SwLayoutFrame const&, long, bool) (rLay=..., rDontLeave=..., nBottom=9223372036854775807, bSkipRowSpanCells=true)
    at sw/source/core/layout/tabfrm.cxx:1552
#23 0x00007f28fe987428 in lcl_RecalcRow(SwRowFrame&, long) (rRow=..., nBottom=9223372036854775807) at sw/source/core/layout/tabfrm.cxx:1687
#24 0x00007f28fe97fa74 in lcl_RecalcSplitLine(SwRowFrame&, SwRowFrame&, long, long) (rLastLine=..., rFollowLine=..., nRemainingSpaceForLastRow=14294, nAlreadyFree=552) at sw/source/core/layout/tabfrm.cxx:704
#25 0x00007f28fe97edf3 in SwTabFrame::Split(long, bool, bool) (this=0x55989ae089a0, nCutPos=50232, bTryToSplit=true, bTableRowKeep=false) at sw/source/core/layout/tabfrm.cxx:1352
#26 0x00007f28fe98456e in SwTabFrame::MakeAll(OutputDevice*) (this=0x55989ae089a0, pRenderContext=0x559899b32650) at sw/source/core/layout/tabfrm.cxx:2554

so layout problem.
Comment 2 Telesto 2023-02-04 21:06:16 UTC
Also in
Version: 7.0.0.3
Build ID: 8061b3e9204bef6b321a21033174034a5e2ea88e
CPU threads: 8; OS: Mac OS X 10.16; UI render: default; VCL: osx
Locale: nl-NL (nl_NL.UTF-8); UI: en-US
Calc: threaded
Comment 3 elias estatistics 2023-02-04 21:46:04 UTC
Created attachment 185124 [details]
spv file to open from pspp, and then save as odt file, which dont open

tjhe spv file to be open from pspp, and then save as odt file, which dont open
Comment 4 elias estatistics 2023-02-04 21:46:43 UTC
pspp v.1.6.
Comment 5 Buovjaga 2024-09-20 16:04:07 UTC
(In reply to elias estatistics from comment #3)
> Created attachment 185124 [details]
> spv file to open from pspp, and then save as odt file, which dont open
> 
> tjhe spv file to be open from pspp, and then save as odt file, which dont
> open

I tested by exporting from pspp 2.0.1 and with the latest master the result is the same: LibreOffice says the file is corrupted and asks to repair. After repair, the document is opened as blank.

While it no longer hangs with master, the hanging upon opening started in 4.2. Before that, LibreOffice showed a filter selection window as if it did not recognise the file format.

https://odfvalidator.org/ says "The document is conformant ODF1.1!", which is maybe a bit surprising. I suspect something fishy in how pspp generates it.

Arch Linux 64-bit
Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: f0baab027df46d4e74b7808ff5d976b8efb1ea33
CPU threads: 8; OS: Linux 6.10; UI render: default; VCL: kf6 (cairo+wayland)
Locale: fi-FI (fi_FI.UTF-8); UI: en-US
Calc: CL threaded
Built on 20 September 2024