> 24 окт. 2021 г., в 19:19, Noah Misch <noah@leadboat.com> написал(а):
>
> These failures started on 2021-10-09, the day conchuela updated from DragonFly
> v4.4.3-RELEASE to DragonFly v6.0.0-RELEASE. It smells like a kernel bug.
> Since the theorized kernel bug seems not to affect
> src/test/subscription/t/015_stream.pl, I wonder if we can borrow a workaround
> from other tests. One thing in common with src/test/recovery/t/017_shm.pl and
> the newest failure sites is that they don't write anything to the child stdin.
> Does writing e.g. a single byte (that the child doesn't use) work around the
> problem?
Following diff did not solve the problem on my VM, finish() still hangs sometimes.
diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm
index 86eb920ea1..0c550ff0dc 100644
--- a/src/test/perl/PostgreSQL/Test/Cluster.pm
+++ b/src/test/perl/PostgreSQL/Test/Cluster.pm
@@ -2112,6 +2112,7 @@ sub background_pgbench
my $harness = IPC::Run::start \@cmd, '<', \$stdin, '>', $stdout, '2>&1',
$timer;
+ $stdin .= "some bytes";
return $harness;
}
> If not, does passing the script via stdin, like "pgbench -f-
> <script.sql", work around the problem?
I'll test it tomorrow, the refactoring does not seem trivial given we use many simultaneous scripts.
Best regards, Andrey Borodin.