git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-p4: fix occasional test failure in kill_p4d

From
Luke Diamand <luke@diamand.org>
Date
Apr 29, 2015, 21:26 UTC
Message-ID
<1430342769-20521-2-git-send-email-luke@diamand.org>
In-Reply-To
<1430342769-20521-1-git-send-email-luke@diamand.org>

The kill_p4d test function used in the test harness fails occasionally, especially if running many of the git-p4 tests in parallel.

It looks like p4d is sensitive to being shutdown ungracefully, so to work around this, use 'p4 admin stop' rather than kill, and start p4d with journalling turned off. This seems to be much more reliable.

Signed-off-by: Luke Diamand <luke@diamand.org>
---
 t/lib-git-p4.sh | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/t/lib-git-p4.sh b/t/lib-git-p4.sh
index 5aa8adc..3885381 100644
--- a/t/lib-git-p4.sh
+++ b/t/lib-git-p4.sh
@@ -69,7 +69,8 @@ start_p4d() {
 	(
 		cd "$db" &&
 		{
-			p4d -q -p $P4DPORT &
+			# disable journalling: it makes shutdown unreliable
+			p4d -J off -q -p $P4DPORT &
 			echo $! >"$pidfile"
 		}
 	) &&
@@ -122,15 +123,15 @@ p4_add_user() {
 }
 
 kill_p4d() {
-	pid=$(cat "$pidfile")
-	# it had better exist for the first kill
-	kill $pid &&
-	for i in 1 2 3 4 5 ; do
-		kill $pid >/dev/null 2>&1 || break
+	# graceful shutdown
+	p4 admin stop &&
+	for i in 1 2 3 4 5
+	do
+		p4 info >/dev/null 2>&1 || break
 		sleep 1
 	done &&
 	# complain if it would not die
-	test_must_fail kill $pid >/dev/null 2>&1 &&
+	test_must_fail p4 info 2>&1 >/dev/null &&
 	rm -rf "$db" "$cli" "$pidfile"
 }
 
-- 
2.3.4.48.g223ab37
Previous: Luke Diamand
Message 2 of 2 in “git-p4: Fix ocasional test failures in kill_p4d”
  1. git-p4: Fix ocasional test failures in kill_p4dLuke Diamand, Apr 29, 2015
  2. git-p4: fix occasional test failure in kill_p4dLuke Diamand, Apr 29, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.