[MDEV-5707] MTR fails on kfreebsd Created: 2014-02-19  Updated: 2014-10-05  Resolved: 2014-10-05

Status: Closed
Project: MariaDB Server
Component/s: Platform Debian
Affects Version/s: 5.5.37, 5.5.38, 10.0.10
Fix Version/s: 5.5.40

Type: Bug Priority: Minor
Reporter: Otto Kekäläinen Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: debian, kfreebsd, tests, upstream
Environment:

Debian official build system


Issue Links:
Relates
relates to MDEV-6577 auth_socket.so does not build in kFre... Closed

 Description   

As seen at https://buildd.debian.org/status/package.php?p=mariadb-5.5 the Debian MariaDB packages do not build on architecture kfreebsd (both i386 and amd64). Builds fail with the error:

mysql-test-run: *** ERROR: Socket path '/tmp/0rfd4fI37_' too long, it would be  truncated and thus not possible to use for connection to  MySQL Server. Set a shorter with --tmpdir=<path> option

Equivalent MySQL packages build successfully as seen on https://buildd.debian.org/status/package.php?p=mysql-5.5

Maybe there are some patches in MySQL that could be imported into MariaDB?



 Comments   
Comment by Elena Stepanova [ 2014-02-20 ]

I don't see anything obvious in MTR that could cause the difference between MySQL and MariaDB, the fragments of code that do the check for socket path length are identical.
If you could apply (temporarily!) the patch below, we might gather more information about what is going on. The patch itself cannot fix anything, it just adds more logging.

=== modified file 'mysql-test/lib/My/Platform.pm'
--- mysql-test/lib/My/Platform.pm	2011-06-30 15:37:13 +0000
+++ mysql-test/lib/My/Platform.pm	2014-02-20 10:51:00 +0000
@@ -120,6 +120,16 @@
   my $len = length($path) - length($tmpdir) - 1;
   my $testfile = $tmpdir . "/" . "x" x ($len  > 0 ? $len : 1);
   my $sock;
+  print("Trying to create socket with name $testfile\n");
+  if (-e $testfile) {
+    print("...but $testfile already exists\n");
+    if (-d $testfile) {
+      print("...and $testfile is a directory\n");
+    }
+    if (! -w $testfile) {
+      print("...and $testfile is not writable\n");
+    }
+  }
   eval {
     $sock= new IO::Socket::UNIX
       (
@@ -128,10 +138,10 @@
       );
     $truncated= 1; # Be negatvie
 
-    die "Could not create UNIX domain socket: $!"
+    print("Could not create socket\n") && die "Could not create UNIX domain socket: $!"
       unless defined $sock;
 
-    die "UNIX domain socket path was truncated"
+    print("Socket path was truncated to ".$sock->hostpath()."\n") && die "UNIX domain socket path was truncated"
       unless ($testfile eq $sock->hostpath());
 
     $truncated= 0; # Yes, it worked!
 

Comment by Elena Stepanova [ 2014-04-01 ]

The reason of the failure is the debian bug
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=670722
A simple script using hostpath() reproduces it on kFreeBSD.

I couldn't understand why it passes with MySQL in the official build system. I cloned the git tree from git://git.debian.org/git/pkg-mysql/mysql-5.5.git, and they fail exact same way. Possibly during installation of dependencies some experimental package which fixes the bug is pulled, but it's just a guess. it's hard for me to reproduce the entire process, because apparently it uses some closed repositories (and besides currently i can't use unstable for kFreeBSD at all, it complains about hash sum mismatch at least on two different mirrors). In any case, it is a hypothetical question because the real solution is to get the upstream bug fixed.

Comment by Otto Kekäläinen [ 2014-07-19 ]

This is still valid for 5.5.38:
https://buildd.debian.org/status/fetch.php?pkg=mariadb-5.5&arch=kfreebsd-amd64&ver=5.5.38-1&stamp=1405681151
https://buildd.debian.org/status/fetch.php?pkg=mariadb-5.5&arch=kfreebsd-i386&ver=5.5.38-1&stamp=1405684324

MySQL in Debian does however build (https://buildd.debian.org/status/package.php?p=mysql-5.5) on this architecture and I think we should get to the same level.

Comment by Otto Kekäläinen [ 2014-08-12 ]

This MTR issue is now fixed with this patch http://anonscm.debian.org/cgit/pkg-mysql/mariadb-5.5.git/commit/?id=7a4997284b903cb281f9107a781fa2bf16ff7ac2 and verified in build log at https://buildd.debian.org/status/fetch.php?pkg=mariadb-5.5&arch=kfreebsd-amd64&ver=5.5.39-1&stamp=1407788422

However, MariaDB does not yet fully build on kfreebsd due to another error (auth_socket.so missing) but for that I'll open another issue.

Please copy the patch to MariaDB trunk and release the fix in upstream 5.5.40.

Generated at Thu Feb 08 07:06:25 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.