Blob Blame History Raw
From b297f75275737de3e16b5d14916efe35535b6279 Mon Sep 17 00:00:00 2001
From: Phil Sutter <psutter@redhat.com>
Date: Wed, 8 Dec 2021 14:10:54 +0100
Subject: [PATCH] tests: shell: better parameters for the interval stack
 overflow test
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1908127
Upstream Status: nftables commit 7b81d9cb094ff

commit 7b81d9cb094ffa96ad821528cf19269dc348f617
Author: Štěpán Němec <snemec@redhat.com>
Date:   Wed Dec 1 12:12:00 2021 +0100

    tests: shell: better parameters for the interval stack overflow test

    Wider testing has shown that 128 kB stack is too low (e.g. for systems
    with 64 kB page size), leading to false failures in some environments.

    Based on results from a matrix of RHEL 8 and RHEL 9 systems across
    x86_64, aarch64, ppc64le and s390x architectures as well as some
    anecdotal testing of other Linux distros on x86_64 machines, 400 kB
    seems safe: the normal nft stack (which should stay constant during
    this test) on all tested systems doesn't exceed 200 kB (stays around
    100 kB on typical systems with 4 kB page size), while always growing
    beyond 500 kB in the failing case (nftables before baecd1cf2685) with
    the increased set size.

    Fixes: d8ccad2a2b73 ("tests: cover baecd1cf2685 ("segtree: Fix segfault when restoring a huge interval set")")
    Signed-off-by: Štěpán Němec <snemec@redhat.com>
    Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 tests/shell/testcases/sets/0068interval_stack_overflow_0 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/shell/testcases/sets/0068interval_stack_overflow_0 b/tests/shell/testcases/sets/0068interval_stack_overflow_0
index 6620572..2cbc986 100755
--- a/tests/shell/testcases/sets/0068interval_stack_overflow_0
+++ b/tests/shell/testcases/sets/0068interval_stack_overflow_0
@@ -9,7 +9,7 @@ trap 'rm -f "$ruleset_file"' EXIT
 {
 	echo 'define big_set = {'
 	for ((i = 1; i < 255; i++)); do
-		for ((j = 1; j < 80; j++)); do
+		for ((j = 1; j < 255; j++)); do
 			echo "10.0.$i.$j,"
 		done
 	done
@@ -26,4 +26,4 @@ table inet test68_table {
 }
 EOF
 
-( ulimit -s 128 && $NFT -f "$ruleset_file" )
+( ulimit -s 400 && $NFT -f "$ruleset_file" )
-- 
2.31.1