Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-5706

threadpool does not build on hurd-i386

Details

    Description

      MariaDB 5.5.35 has just been uploaded to Debian and the Debian build system reported, that building for architecture hurd-i386 failed.

      Build overview: https://buildd.debian.org/status/package.php?p=mariadb-5.5
      Hurd-i386 build overview: https://buildd.debian.org/status/logs.php?pkg=mariadb-5.5&arch=hurd-i386

      Some error lines from the build log:

      /«PKGBUILDDIR»/sql/threadpool_unix.cc:39:2: error: #error threadpool is not available on this platform
       #error threadpool is not available on this platform
        ^
      /«PKGBUILDDIR»/sql/threadpool_unix.cc: In function 'connection_t* listener(worker_thread_t*, thread_group_t*)':
      /«PKGBUILDDIR»/sql/threadpool_unix.cc:641:5: error: 'native_event' was not declared in this scope
           native_event ev[MAX_EVENTS];
           ^
      /«PKGBUILDDIR»/sql/threadpool_unix.cc:641:18: error: expected ';' before 'ev'
           native_event ev[MAX_EVENTS];
                        ^
      /«PKGBUILDDIR»/sql/threadpool_unix.cc:647:46: error: 'ev' was not declared in this scope
           cnt = io_poll_wait(thread_group->pollfd, ev, MAX_EVENTS, -1);

      Full log at:
      https://buildd.debian.org/status/fetch.php?pkg=mariadb-5.5&arch=hurd-i386&ver=5.5.35-1&stamp=1392719557

      Equivalent MySQL packages for hurd-i386 build successfully, are there maybe some patches to import to MariaDB?
      https://buildd.debian.org/status/logs.php?pkg=mysql-5.5&&arch=hurd-i386

      Attachments

        Activity

          elenst Elena Stepanova added a comment - - edited

          Equivalent MySQL packages for hurd-i386 build successfully, are there maybe some patches to import to MariaDB?

          MySQL does not have the thread pool, so there are no patches that can be taken from MySQL.


          I see things like than in other projects that add support for hurd:

          -#if defined(FREEBSD) || defined(__linux__)
          +#if defined(FREEBSD) || defined(__linux__) || defined(__gnu_hurd__)

          or

          -#if defined(__linux__) 
          +#if defined(__linux__) || defined(__GNU__)

          Maybe we need something like that (or maybe it's much more complicated).

          svoj,
          Could you please take a quick look? If there is no easy fix, please change the 'Fix version' field.

          elenst Elena Stepanova added a comment - - edited Equivalent MySQL packages for hurd-i386 build successfully, are there maybe some patches to import to MariaDB? MySQL does not have the thread pool, so there are no patches that can be taken from MySQL. I see things like than in other projects that add support for hurd: -#if defined(FREEBSD) || defined(__linux__) +#if defined(FREEBSD) || defined(__linux__) || defined(__gnu_hurd__) or -#if defined(__linux__) +#if defined(__linux__) || defined(__GNU__) Maybe we need something like that (or maybe it's much more complicated). svoj , Could you please take a quick look? If there is no easy fix, please change the 'Fix version' field.

          Looks like threadpool is not aware of GNU Hurd indeed and there is no way to just switch it off. I'll need to setup Hurd VM and check what we can do about it.

          svoj Sergey Vojtovich added a comment - Looks like threadpool is not aware of GNU Hurd indeed and there is no way to just switch it off. I'll need to setup Hurd VM and check what we can do about it.

          As a quick fix I'd suggest to disable pool of threads on GNU/Hurd.

          Somewhat better fix is to be done by MDEV-5756 - CMake option to build without thread pool.

          Even better to implement native pool of threads for GNU/Hurd, but that's rather time consuming.

          svoj Sergey Vojtovich added a comment - As a quick fix I'd suggest to disable pool of threads on GNU/Hurd. Somewhat better fix is to be done by MDEV-5756 - CMake option to build without thread pool. Even better to implement native pool of threads for GNU/Hurd, but that's rather time consuming.
          svoj Sergey Vojtovich added a comment - - edited

          Sergei, please review fix for this bug.

          There is still one compilation failure in auth_dialog plugin due to missing RTLD_DEFAULT, but that's rather odd because there is RTLD_DEFAULT in dlfcn.h of GNU/Hurd. This plugin can be disabled on GNU/Hurd anyway.

          I failed to run test suite, but I suppose that's another problem.

          svoj Sergey Vojtovich added a comment - - edited Sergei, please review fix for this bug. There is still one compilation failure in auth_dialog plugin due to missing RTLD_DEFAULT, but that's rather odd because there is RTLD_DEFAULT in dlfcn.h of GNU/Hurd. This plugin can be disabled on GNU/Hurd anyway. I failed to run test suite, but I suppose that's another problem.

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

          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.

          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=hurd-i386&ver=5.5.38-1&stamp=1405753481 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.

          It seems this issue still exists in 5.5.39. The fail log is about the same threadpool issue:

          /«PKGBUILDDIR»/sql/threadpool_unix.cc:39:2: error: #error threadpool is not available on this platform
           #error threadpool is not available on this platform

          Full log at https://buildd.debian.org/status/fetch.php?pkg=mariadb-5.5&arch=hurd-i386&ver=5.5.39-1&stamp=1407828438

          otto Otto Kekäläinen added a comment - It seems this issue still exists in 5.5.39. The fail log is about the same threadpool issue: /«PKGBUILDDIR»/sql/threadpool_unix.cc:39:2: error: #error threadpool is not available on this platform #error threadpool is not available on this platform Full log at https://buildd.debian.org/status/fetch.php?pkg=mariadb-5.5&arch=hurd-i386&ver=5.5.39-1&stamp=1407828438

          Fixed in 5.5.40

          serg Sergei Golubchik added a comment - Fixed in 5.5.40
          otto Otto Kekäläinen added a comment - This is fixed in 5.5. in https://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/4267 Also for 10.0 in https://bazaar.launchpad.net/~maria-captains/maria/10.0/revision/4355#sql/CMakeLists.txt

          People

            serg Sergei Golubchik
            otto Otto Kekäläinen
            Votes:
            0 Vote for this issue
            Watchers:
            4 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.