On Sat, Jun 04, 2022 at 12:35:45PM +0900, Michael Paquier wrote: > Something like 80~85% of the bloat comes from the diffs in your case. > Well, it is always possible to limit that to an arbitrary amount of > characters (say 50k~100k?) to still give some context, and dump the > whole in a different file outside the log/ path (aka tmp_check/), so > that the buildfarm would show a minimum amount of information, while > local failures would still have an access to everything.
After looking a bit around that. Something like the attached, where the characters are limited at 10k, would limit the output generated.. -- Michael
diff --git a/src/bin/pg_upgrade/t/002_pg_upgrade.pl b/src/bin/pg_upgrade/t/002_pg_upgrade.pl index 55c7354ba2..4581ddc915 100644 --- a/src/bin/pg_upgrade/t/002_pg_upgrade.pl +++ b/src/bin/pg_upgrade/t/002_pg_upgrade.pl @@ -223,6 +223,9 @@ command_ok( 'run of pg_upgrade for new instance'); $newnode->start; +# Limit all contents to 10k characters. +my $report_max_chars = 10000; + # Check if there are any logs coming from pg_upgrade, that would only be # retained on failure. my $log_path = $newnode->data_dir . "/pg_upgrade_output.d/log"; @@ -231,7 +234,8 @@ if (-d $log_path) foreach my $log (glob("$log_path/*")) { note "=== contents of $log ===\n"; - print slurp_file($log); + my $contents = slurp_file($log); + print substr($contents, 0, $report_max_chars); print "=== EOF ===\n"; } } @@ -256,9 +260,9 @@ if ($compare_res != 0) run_command([ 'diff', "$tempdir/dump1.sql", "$tempdir/dump2.sql" ]); print "=== diff of $tempdir/dump1.sql and $tempdir/dump2.sql\n"; print "=== stdout ===\n"; - print $stdout; + print substr($stdout, 0, $report_max_chars); print "=== stderr ===\n"; - print $stderr; + print substr($stderr, 0, $report_max_chars); print "=== EOF ===\n"; }
signature.asc
Description: PGP signature