[debian-mysql] Bug#809022: Bug#809022: Bug#809022: autopkgtest patch for MariaDB

Kristian Nielsen knielsen at knielsen-hq.org
Fri Sep 9 13:11:50 UTC 2016


Otto Kekäläinen <otto at debian.org> writes:

> I uploaded now 10.0.27 and even with the recent fixes, it is still
> failing. I don't know how to fix it. Can you Paul help debug it?

> https://ci.debian.net/data/packages/unstable/amd64/m/mariadb-10.0/20160909_103759.autopkgtest.log.gz

> starting mysql-test-tun.pl...
> Can't locate lib/mtr_process.pl in @INC (@INC contains: lib /etc/perl
> /usr/local/lib/x86_64-linux-gnu/perl/5.22.2
> /usr/local/share/perl/5.22.2 /usr/lib/x86_64-linux-gnu/perl5/5.22
> /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.22
> /usr/share/perl/5.22 /usr/local/lib/site_perl
> /usr/lib/x86_64-linux-gnu/perl-base) at ./mysql-test-run.pl line 105.

Jumping into the middle of the discussion ... but I think I see the
problem. Note that current directory ./ is missing from @INC. This happens
when perl is running in 'taint' mode, which I'm guessing is what is
happening here.

According to my quick reading of Perl documentation, taint checks are
enabled by -T (which does not seem to be happening here), or when running
setuid/setgid.

Could it be that taint checks become enabled here due to setuid/setgid?
Perhaps the environment does seteuid() but not setreuid() (or however it
works in Posix), or maybe fakeroot is confusing Perl or something?

If so, is there some way to avoid that the test environment runs Perl with
taint checks?

The below patch fixes the problem with missing current directory in @INC.
However, if taint checks are indeed enabled, this is not sufficient; I don't
think mysql-test-run.pl is currently written to be able to run under Perl
taint mode.

-----------------------------------------------------------------------
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl
index f3b733a..01410af 100755
--- a/mysql-test/mysql-test-run.pl
+++ b/mysql-test/mysql-test-run.pl
@@ -77,6 +77,9 @@ BEGIN {
 }
 
 use lib "lib";
+BEGIN {
+  push @INC, '.' unless grep {$_ eq '.'} @INC;
+}
 
 use Cwd ;
 use Cwd 'realpath';
-----------------------------------------------------------------------

> https://ci.debian.net/packages/m/mariadb-10.0/unstable/amd64/

Hope this helps,

 - Kristian.



More information about the pkg-mysql-maint mailing list