Bug 162314 - LibreOffice Writer hangs in a document with mixed RTL and LTR text in paragraphs
Summary: LibreOffice Writer hangs in a document with mixed RTL and LTR text in paragraphs
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
25.2.0.0 alpha0+
Hardware: All All
: medium normal
Assignee: Jonathan Clark
URL:
Whiteboard: target:25.2.0 target:24.8.1
Keywords: bisected, regression
: 162355 (view as bug list)
Depends on:
Blocks: RTL
  Show dependency treegraph
 
Reported: 2024-08-02 12:31 UTC by Hossein
Modified: 2024-08-29 09:57 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Example reproducer (8.31 KB, application/vnd.oasis.opendocument.text)
2024-08-02 12:56 UTC, Jonathan Clark
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Hossein 2024-08-02 12:31:44 UTC
Description:
After opening and/or converting a LibreOffice Writer document which have paragraphs of mixed RTL and LTR text, LibreOffice hangs.

Steps to Reproduce:
1. Open the attachment
2. Try scrolling to the end of document, or convert it to PDF

Actual Results:
LibreOffice Writer hangs

Expected Results:
LibreOffice Writer should not hang

Reproducible: Always


User Profile Reset: No

Additional Info:
Version: 25.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: 8bd57009d38f7551a77566a0e782a7b371aece23
CPU threads: 12; OS: Linux 6.2; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
Calc: threaded
Comment 1 Hossein 2024-08-02 12:36:14 UTC
This is a regression, as the problem was not present in LibreOffice 24.2.2.2, but it is reproducible in the latest LO 25.2 dev master. This is the responsible commit, Adding Jonathan to CC:

commit 04184aa7e3aada8f4d938d20dfdb54b3a7dd3896
author	Jonathan Clark <jonathan@libreoffice.org>	Thu Jul 18 08:40:16 2024 -0600
committer	Jonathan Clark <jonathan@libreoffice.org>	Thu Jul 25 14:23:35 2024 +0200
tree 4bfaec67439c192cd4091b47acb3d26ae074b9b7
parent 33629ff9348a0df88c11257a3921129df4875238 [diff]

tdf#157829 sw: Implemented line break underflow for bidi portions

$ git bisect log
git bisect start
# bad: [f806fc136b3410ec9a1e09320d100c78b33c867b] tdf#137335 calculate paragraph height in RTF/DOCX
git bisect bad f806fc136b3410ec9a1e09320d100c78b33c867b
# good: [898d5d470e24a55556f2fb244fec24df33ba8855] Revert "Related: tdf#155266 force flush after drawing native scrollbars"
git bisect good 898d5d470e24a55556f2fb244fec24df33ba8855
# good: [65b3808a24db4d8b549eb1643d009330f63abf65] i#84870: Add a unit test
git bisect good 65b3808a24db4d8b549eb1643d009330f63abf65
# good: [78a9afc5ea493a703467b72475a9d80a9fa8a6db] tdf#77388 sw: add missing comment
git bisect good 78a9afc5ea493a703467b72475a9d80a9fa8a6db
# good: [11169e6b29cbe7d782a6236d2a866b07b7501417] tdf#161853 icon choice ctrl: Drop WB_SMART_ARRANGE handling
git bisect good 11169e6b29cbe7d782a6236d2a866b07b7501417
# good: [5b9dec4caa727cd46ae9163812ecfc3142157cd1] tdf#155447 qt a11y: Don't report "Unknown" for unsupported props
git bisect good 5b9dec4caa727cd46ae9163812ecfc3142157cd1
# good: [92454bca2045b9e9ca636d086cb8520ccf03be22] tdf#161501 vcl: Make TabitemValue position-aware
git bisect good 92454bca2045b9e9ca636d086cb8520ccf03be22
# bad: [f9df8d71a9d4ad2e7bc2e221551d9ee007f9fc60] lok: join Webdav Ticker thread.
git bisect bad f9df8d71a9d4ad2e7bc2e221551d9ee007f9fc60
# skip: [27e5a74960f50ec041ef7c9e5026afe70a2b4adc] Update git submodules
git bisect skip 27e5a74960f50ec041ef7c9e5026afe70a2b4adc
# good: [c59730b46b4d7dd0af0c49ecbc852cda2871a5a0] tdf#161501 icon choice ctrl: Draw whole entry natively
git bisect good c59730b46b4d7dd0af0c49ecbc852cda2871a5a0
# good: [7dc921e2252dbb60be98695180893e7ae499870d] Related tdf#162136: typo GapWidthSequence instead of GapwidthSequence
git bisect good 7dc921e2252dbb60be98695180893e7ae499870d
# skip: [6f3a37d074440d29048239bc9cc0175d90f51d9f] Update git submodules
git bisect skip 6f3a37d074440d29048239bc9cc0175d90f51d9f
# bad: [04184aa7e3aada8f4d938d20dfdb54b3a7dd3896] tdf#157829 sw: Implemented line break underflow for bidi portions
git bisect bad 04184aa7e3aada8f4d938d20dfdb54b3a7dd3896
# good: [4aa2d5ede17ddf7345804deb200983367990a7e2] Related: tdf#162093 TableRef item specifier may occur standalone
git bisect good 4aa2d5ede17ddf7345804deb200983367990a7e2
# good: [1bbcc3fdf312971ffb681b332f47369739d95dde] O[U]String overloads that return view for rest parameter
git bisect good 1bbcc3fdf312971ffb681b332f47369739d95dde
# good: [33629ff9348a0df88c11257a3921129df4875238] force max len for some oss-fuzz fuzzers
git bisect good 33629ff9348a0df88c11257a3921129df4875238
# first bad commit: [04184aa7e3aada8f4d938d20dfdb54b3a7dd3896] tdf#157829 sw: Implemented line break underflow for bidi portions
Comment 2 Jonathan Clark 2024-08-02 12:56:34 UTC
Created attachment 195665 [details]
Example reproducer

I was able to reproduce this hang with the attached document.
Comment 3 Jonathan Clark 2024-08-05 12:57:50 UTC
*** Bug 162355 has been marked as a duplicate of this bug. ***
Comment 4 Commit Notification 2024-08-05 14:16:05 UTC
Jonathan Clark committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/cb7c70cd19237268b748d3e35f8bbed2150042ea

tdf#162314 sw: Fix hang while laying out bidi portions with underflow

It will be available in 25.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 5 Eyal Rozenberg 2024-08-08 15:17:36 UTC
Hossein, Jonathan, please remember to mark RTL-related bugs as blocking the RTL meta-bug. Also, Hossein, please answer my email.
Comment 6 Commit Notification 2024-08-20 08:46:04 UTC
Jonathan Clark committed a patch related to this issue.
It has been pushed to "libreoffice-24-8":

https://git.libreoffice.org/core/commit/e57b68ae4cda44f843caaad34b86a39d3bae19f9

tdf#162314 sw: Fix hang while laying out bidi portions with underflow

It will be available in 24.8.1.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.