Bug Hunting Session
Bug 89105 - replace all infinite loop in long paragraph with > 64k characters
Summary: replace all infinite loop in long paragraph with > 64k characters
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
4.3.0.4 release
Hardware: x86 (IA32) All
: medium normal
Assignee: Matteo Casalin
URL:
Whiteboard: target:4.5.0 target:4.4.1 target:4.3.7
Keywords: bibisected, regression
Depends on:
Blocks:
 
Reported: 2015-02-04 00:37 UTC by Jon Rubin
Modified: 2015-12-17 08:46 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
single paragraph >15,000 words (103.45 KB, application/vnd.oasis.opendocument.text)
2015-02-04 00:37 UTC, Jon Rubin
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jon Rubin 2015-02-04 00:37:04 UTC
Created attachment 113112 [details]
single paragraph >15,000 words

If I have a long >15,000 words single paragraph and I try to do a replace all on a piece of text, find and replace hangs. I can still do single find and replaces but writer chokes on the replace all option.

This may be related to / be a duplicate of bug 87015 - certainly the use case (trying to edit book length manuscripts) are the same.
Comment 1 Buovjaga 2015-02-07 19:54:14 UTC
Reproduced hang.

3.5.0 does not hang - adding request for bibisect.

Win 7 Pro 64-bit, LibO Version: 4.4.0.3
Build ID: de093506bcdc5fafd9023ee680b8c60e3e0645d7
Locale: fi_FI

Version: 4.5.0.0.alpha0+
Build ID: 99c00b090533da9818444be2831b8da0e713e5f9
TinderBox: Win-x86@62-TDF, Branch:MASTER, Time: 2015-02-04_06:38:53
Locale: fi_FI

Ubuntu 14.10 64-bit
Version: 4.4.0.3
Build ID: 40m0(Build:3)
Locale: en_US

LibreOffice 3.5.0rc3 
Build ID: 7e68ba2-a744ebf-1f241b7-c506db1-7d53735
Comment 2 Rostislav 'R.Yu.' Okulov 2015-02-16 20:52:24 UTC
# bad: [423a84c4f7068853974887d98442bc2a2d0cc91b] source-hash-c15927f20d4727c3b8de68497b6949e72f9e6e9e
git bisect bad 423a84c4f7068853974887d98442bc2a2d0cc91b
# good: [65fd30f5cb4cdd37995a33420ed8273c0a29bf00] source-hash-d6cde02dbce8c28c6af836e2dc1120f8a6ef9932
git bisect good 65fd30f5cb4cdd37995a33420ed8273c0a29bf00
# good: [e02439a3d6297a1f5334fa558ddec5ef4212c574] source-hash-6b8393474974d2af7a2cb3c47b3d5c081b550bdb
git bisect good e02439a3d6297a1f5334fa558ddec5ef4212c574
# bad: [4850941efe43ae800be5c76e1102ab80ac2c085d] source-hash-980a6e552502f02f12c15bfb1c9f8e6269499f4b
git bisect bad 4850941efe43ae800be5c76e1102ab80ac2c085d
# skip: [a043626b542eb8314218d7439534dce2fc325304] source-hash-9379a922c07df3cdb7d567cc88dfaaa39ead3681
git bisect skip a043626b542eb8314218d7439534dce2fc325304
# skip: [aba65c3e4c0df07e4909aeefb758cdb688242bf6] source-hash-827524abfb4b577d08276fde40929a9adfb7ff1a
git bisect skip aba65c3e4c0df07e4909aeefb758cdb688242bf6
# skip: [aba65c3e4c0df07e4909aeefb758cdb688242bf6] source-hash-827524abfb4b577d08276fde40929a9adfb7ff1a
git bisect skip aba65c3e4c0df07e4909aeefb758cdb688242bf6
# skip: [aba65c3e4c0df07e4909aeefb758cdb688242bf6] source-hash-827524abfb4b577d08276fde40929a9adfb7ff1a
git bisect skip aba65c3e4c0df07e4909aeefb758cdb688242bf6
# skip: [aba65c3e4c0df07e4909aeefb758cdb688242bf6] source-hash-827524abfb4b577d08276fde40929a9adfb7ff1a
git bisect skip aba65c3e4c0df07e4909aeefb758cdb688242bf6
# good: [65fd30f5cb4cdd37995a33420ed8273c0a29bf00] source-hash-d6cde02dbce8c28c6af836e2dc1120f8a6ef9932
git bisect good 65fd30f5cb4cdd37995a33420ed8273c0a29bf00
# good: [c81a8a0dcfc1ed095a80e4485c89dd0fcaf73f31] source-hash-c69ed33628ec0b7abf6296539cf280d6c4265930
git bisect good c81a8a0dcfc1ed095a80e4485c89dd0fcaf73f31
# good: [c81a8a0dcfc1ed095a80e4485c89dd0fcaf73f31] source-hash-c69ed33628ec0b7abf6296539cf280d6c4265930
git bisect good c81a8a0dcfc1ed095a80e4485c89dd0fcaf73f31
# good: [30cde618212ecaf5725321372bd1b8339f8e2b9f] source-hash-137f872aa8e6e598e7c7ed1ffa4d21e580e22bdb
git bisect good 30cde618212ecaf5725321372bd1b8339f8e2b9f
# good: [30cde618212ecaf5725321372bd1b8339f8e2b9f] source-hash-137f872aa8e6e598e7c7ed1ffa4d21e580e22bdb
git bisect good 30cde618212ecaf5725321372bd1b8339f8e2b9f
# bad: [306d62ec4b911895f08f2bb8efefebed7ac795f0] source-hash-735bd120c9ee2d9bb3514907936c27efb75d7282
git bisect bad 306d62ec4b911895f08f2bb8efefebed7ac795f0
# bad: [306d62ec4b911895f08f2bb8efefebed7ac795f0] source-hash-735bd120c9ee2d9bb3514907936c27efb75d7282
git bisect bad 306d62ec4b911895f08f2bb8efefebed7ac795f0
# bad: [306d62ec4b911895f08f2bb8efefebed7ac795f0] source-hash-735bd120c9ee2d9bb3514907936c27efb75d7282
git bisect bad 306d62ec4b911895f08f2bb8efefebed7ac795f0
# good: [65fd30f5cb4cdd37995a33420ed8273c0a29bf00] source-hash-d6cde02dbce8c28c6af836e2dc1120f8a6ef9932
git bisect good 65fd30f5cb4cdd37995a33420ed8273c0a29bf00
# good: [835ce851abe657bb5a8238693ea924287e6890c0] source-hash-1e53784811458563b36fd4cbaa15c2f526a7161b
git bisect good 835ce851abe657bb5a8238693ea924287e6890c0
# good: [835ce851abe657bb5a8238693ea924287e6890c0] source-hash-1e53784811458563b36fd4cbaa15c2f526a7161b
git bisect good 835ce851abe657bb5a8238693ea924287e6890c0
# good: [7d9e0cb59cf7fe20b31a5c291238b5391834c278] source-hash-c828319753558e25a48ce7808604bcc648f2483d
git bisect good 7d9e0cb59cf7fe20b31a5c291238b5391834c278
# good: [03bcabfd9fda01b23178104f5c1b8e2e0053e6b2] source-hash-007bf2b8c04090920b54e914ac75fc13720b450c
git bisect good 03bcabfd9fda01b23178104f5c1b8e2e0053e6b2
# first bad commit: [306d62ec4b911895f08f2bb8efefebed7ac795f0] source-hash-735bd120c9ee2d9bb3514907936c27efb75d7282

306d62ec4b911895f08f2bb8efefebed7ac795f0 is the first bad commit
commit 306d62ec4b911895f08f2bb8efefebed7ac795f0
Author: Bjoern Michaelsen <bjoern.michaelsen@canonical.com>
Date:   Sat May 10 21:19:04 2014 +0000

    source-hash-735bd120c9ee2d9bb3514907936c27efb75d7282
    
    commit 735bd120c9ee2d9bb3514907936c27efb75d7282
    Author:     Caolán McNamara <caolanm@redhat.com>
    AuthorDate: Mon Dec 16 19:21:35 2013 +0000
    Commit:     Gerrit Code Review <gerrit@gerrit.libreoffice.org>
    CommitDate: Mon Dec 16 19:21:49 2013 +0000
    
        Updated core
        Project: help  a527273352071934f391c38c9e22395d168d79cd

:100644 100644 77fe8f0417e6a56eeb3df9da365e111f163db948 53e2b709f28d0f924ad98e51c9b1b98aaa208546 M      ccache.log
:100644 100644 8ccce3d41d3e599c351b824ed36d520ea8d7f49c 6fb511269af05ab7b64408daa4e888945cd4ab68 M      commitmsg
:100644 100644 ead0101ca49cfe17daa14aaa64ea05cbeff03692 fea3010ae266ad649179a0105c52105b7fe72552 M      make.log
:040000 040000 7d734e210d3afb1a8f9ddc78a482204132f63db6 dda50d068353d2574d136aa929cd7e5a0e9cdd74 M      opt
Comment 3 Michael Stahl (CIB) 2015-02-17 22:38:56 UTC
this is about the 3rd different infinite loop in search and replace,
this one was fixed already on master by:

commit dd9972f5f37063f5fe3eb5e011d2adc73f44d305
Author:     Matteo Casalin <matteo.casalin@yahoo.com>
AuthorDate: Wed Jan 7 18:50:32 2015 +0100

    Remove unnecessary downcast


fixed on libreoffice-4-4 by commit 77a4ec86caeb0c7958a4b7fef38a3f0e883d0701
fixed on libreoffice-4-3 by commit 620df179e0cc1339017a36840e19280f133b2a1a
Comment 4 Commit Notification 2015-02-19 11:33:11 UTC
Matteo Casalin committed a patch related to this issue.
It has been pushed to "libreoffice-4-4-1":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=ba4c4b936951e9ed1ac4edc4e1576ffe3e44f629&h=libreoffice-4-4-1

tdf#89105: sw: Remove unnecessary downcast

It will be available in 4.4.1.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 5 Robinson Tryon (qubit) 2015-12-17 08:46:10 UTC
Migrating Whiteboard tags to Keywords: (bibisected)
[NinjaEdit]