You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.2 KiB
41 lines
1.2 KiB
From 0e51495b41c913ba2474d95ed7668a2190e7bd8e Mon Sep 17 00:00:00 2001
|
|
From: Slaven Rezic <slaven@rezic.de>
|
|
Date: Sat, 18 Nov 2017 21:04:26 +0000
|
|
Subject: [PATCH] workaround for race condition in t/01-base.t [RT #113449]
|
|
|
|
It's possible that the TERM signal handler is not yet installed
|
|
in some workers when the last worker runs and sends the final
|
|
TERM signal to the parent. The effect is that the number
|
|
stored in the temporary file is not as expected, as in this report:
|
|
http://www.cpantesters.org/cpan/report/86348529
|
|
|
|
This failure seems to occur quite frequently on (virtual?) FreeBSD
|
|
systems.
|
|
---
|
|
t/01-base.t | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/t/01-base.t b/t/01-base.t
|
|
index 5137791..80e447d 100755
|
|
--- a/t/01-base.t
|
|
+++ b/t/01-base.t
|
|
@@ -39,7 +39,6 @@ until ($pm->signal_received) {
|
|
$c++;
|
|
seek $fh, 0, 0;
|
|
syswrite $fh, $c, length($c);
|
|
- flock $fh, LOCK_UN;
|
|
local $SIG{TERM} = sub {
|
|
flock $fh, LOCK_EX;
|
|
seek $fh, 0, 0;
|
|
@@ -50,6 +49,7 @@ until ($pm->signal_received) {
|
|
flock $fh, LOCK_UN;
|
|
exit 0;
|
|
};
|
|
+ flock $fh, LOCK_UN;
|
|
if ($c == $pm->max_workers) {
|
|
kill 'TERM', $ppid;
|
|
}
|
|
--
|
|
2.1.2
|
|
|