diff --git a/sed-regexp-cache-size.patch b/sed-regexp-cache-size.patch new file mode 100644 index 0000000..d221cbb --- /dev/null +++ b/sed-regexp-cache-size.patch @@ -0,0 +1,25 @@ +From 2d1641d76c0254e3c95f461d9a0fd080e0f29c3c Mon Sep 17 00:00:00 2001 +From: Jakub Martisko +Date: Fri, 23 Jan 2026 13:21:41 +0100 +Subject: [PATCH] increase tr count + +--- + lib/dfa.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/dfa.c b/lib/dfa.c +index 0b694e1..d76e9ec 100644 +--- a/lib/dfa.c ++++ b/lib/dfa.c +@@ -354,7 +354,7 @@ typedef struct + + /* Maximum for any transition table count. This should be at least 3, + for the initial state setup. */ +-enum { MAX_TRCOUNT = 1024 }; ++enum { MAX_TRCOUNT = 2048 }; + + /* A bracket operator. + e.g., [a-c], [[:alpha:]], etc. */ +-- +2.52.0 + diff --git a/sed.spec b/sed.spec index a30515f..4b0ef7c 100644 --- a/sed.spec +++ b/sed.spec @@ -3,7 +3,7 @@ Summary: A GNU stream text editor Name: sed Version: 4.9 -Release: 3%{?dist} +Release: 5%{?dist} License: GPL-3.0-or-later URL: http://sed.sourceforge.net/ Source0: ftp://ftp.gnu.org/pub/gnu/sed/sed-%{version}.tar.xz @@ -11,6 +11,7 @@ Source1: http://sed.sourceforge.net/sedfaq.txt Patch0: sed-b-flag.patch Patch1: sed-c-flag.patch Patch2: sed-covscan-annotations.patch +Patch3: sed-regexp-cache-size.patch BuildRequires: make BuildRequires: glibc-devel, libselinux-devel, libacl-devel, automake, autoconf, gcc BuildRequires: perl-Getopt-Long @@ -20,7 +21,11 @@ BuildRequires: perl(FileHandle) # invalid-mb-seq-UMR.sh: skipped test: locale 'ja_JP' is buggy # mb-charclass-non-utf8.sh: skipped test: ja_JP shift-jis locale not found BuildRequires: glibc-langpack-el, glibc-langpack-en -BuildRequires: glibc-langpack-ru, valgrind +BuildRequires: glibc-langpack-ru + +%ifarch %{valgrind_arches} +BuildRequires: valgrind +%endif Provides: /bin/sed @@ -64,6 +69,20 @@ rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir %{_mandir}/man1/sed.1* %changelog +* Fri Jan 23 2026 Jakub Martisko - 4.9-5 +- lib/dfa.c: Increase the maximum size of the transitions table +- After changes introduced between sed 4.2 and 4.4, some regexps + started to hit the table size limits. This lead to repeated deletion + and rebuilding of the table, leading to massive performance drops. + While the core issue is still present, this change should at least + help by moving the threshold of the regexp complexity that triggers the + table rebuilds. +- Resolves: RHEL-144027 + +* Fri Apr 18 2025 David Abdurachmanov - 4.9-4 +- Properly check valgrind arches (fixes riscv64 build) + Resolves: RHEL-87803 + * Tue Oct 29 2024 Troy Dawson - 4.9-3 - Bump release for October 2024 mass rebuild: Resolves: RHEL-64018