Details

    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?

      Attachments

        Issue Links

          Activity

            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!
             

            elenst Elena Stepanova added a comment - 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!  

            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.

            elenst Elena Stepanova added a comment - 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.
            otto Otto Kekäläinen added a comment - 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.

            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.

            otto Otto Kekäläinen added a comment - 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.

            People

              serg Sergei Golubchik
              otto Otto Kekäläinen
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.