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

Undefined reference to concurrency on Solaris

Details

    Description

      The MariaDB 10.11.6 `mysqld` doesn't link on Solaris:
      ```
      Undefined first referenced
      symbol in file
      concurrency ../../sql/libsql.a(mysqld.cc.o)
      ```
      This is from a call in `sql/mysqld.cc` (`mysql_main`):
      ```
      (void) thr_setconcurrency(concurrency); // 10 by default
      ```
      The `concurrency` variable had been ripped out in MDEV-18650 with the deprecation of `thread_concurrency`, but that has been incomplete. It seems that this issue wasn't noticed on other targets since `my_pthread.h` has:
      ```
      #ifndef HAVE_THR_SETCONCURRENCY
      #define thr_setconcurrency(A) pthread_dummy(0)
      #endif
      ```
      while Solaris *does* have `thr_setconcurrency`.

      Given the previous (incomplete) removal, I've just removed this call as well.

      Attachments

        Activity

          same as with other issues. We don't have Solaris in CI, but if you'll provide a patch, we'll apply it (providing it won't break anything else)

          serg Sergei Golubchik added a comment - same as with other issues. We don't have Solaris in CI, but if you'll provide a patch, we'll apply it (providing it won't break anything else)
          rorth Rainer Orth added a comment -

          I now have a proper patch (for 11.4) for this issue. There are two issues with the use of `thr_setconcurrency`:

          • Some calls use a `concurrency` argument which has been removed in MDEV-18650, wo fail to compile. These calls must go to unbreak the Solaris build.
          • However, in other cases calls to `thr_setconcurrency` are guarded with `HAVE_THR_SETCONCURRENCY` and use fixed args. While they could stay, there's no equivalent code on other targets. Besides, the Solaris 11.4 `thr_setconcurrency(3C)` declares thefunction as obsolete, so I've decided to remove those calls, too. MDEV-33092-thr_setconcurrency.patch
          rorth Rainer Orth added a comment - I now have a proper patch (for 11.4) for this issue. There are two issues with the use of `thr_setconcurrency`: Some calls use a `concurrency` argument which has been removed in MDEV-18650 , wo fail to compile. These calls must go to unbreak the Solaris build. However, in other cases calls to `thr_setconcurrency` are guarded with `HAVE_THR_SETCONCURRENCY` and use fixed args. While they could stay, there's no equivalent code on other targets. Besides, the Solaris 11.4 `thr_setconcurrency(3C)` declares thefunction as obsolete, so I've decided to remove those calls, too. MDEV-33092-thr_setconcurrency.patch

          People

            serg Sergei Golubchik
            rorth Rainer Orth
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.