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

libmyodbc relocation error with MariaDB on CentOS 5

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 10.0.0, 5.5.28a
    • 5.5.31, 5.3.12
    • None

    Description

      libmyodbc on this system is not usable with MariaDB MySQL compatibility layer (MariaDB-compat) due to relocation error. This can be demonstrated with isql or iusql utilities from unixODBC package (unixODBC64 will do as well):

      [root@a10-52-75-225 ~]# echo "" | isql -b apsc
      isql: relocation error: /usr/lib64/libmyodbc3.so: symbol strmov, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference
      [root@a10-52-75-225 ~]# strings /usr/lib64/libmyodbc3.so | grep strmov
      strmov
      [root@a10-52-75-225 ~]# strings /usr/lib64/libmysqlclient.so.15 | grep strmov
      [root@a10-52-75-225 ~]# rpm -qf /usr/lib64/libmysqlclient.so.15
      MariaDB-compat-10.0.0-1
      [root@a10-52-75-225 ~]# rpm -qf /usr/lib64/libmyodbc3.so
      mysql-connector-odbc-3.51.26r1127-2.el5

      This assumes following sample odbc configuration:

      [root@a10-52-75-225 ~]# cat /etc/odbc.ini
      [apsc]
      Description = Sample MySQL database (DSN)
      Driver      = MySQL
      SERVER      = localhost
      USER        = apsc
      PASSWORD    = HDA0edvGpCvs
      PORT        = 3306
      DATABASE    = apsc
       
      [root@a10-52-75-225 ~]# tail -n 9 /etc/odbcinst.ini
      [MySQL]
      Description = Sample MySQL driver
      Driver      = /usr/lib64/libmyodbc3.so
      Setup       =
      FileUsage   = 1
      Driver64    = /usr/lib64/libmyodbc3.so
      Setup64     =
      UsageCount  = 1

      This was done on CentOS 5 x64 machine with MariaDB 10.0, but same issues were observed with MariaDB 5.5. Also this most probably happens on other architectures and RedHat el5, maybe on RedHat/CentOS 6 as well.

      Attachments

        Activity

          In 5.5 RPMs, the fixed 5.3 libraries will appear only after the next 5.5 after 5.3.12

          wlad Vladislav Vaintroub added a comment - In 5.5 RPMs, the fixed 5.3 libraries will appear only after the next 5.5 after 5.3.12

          5.3.12 that was released in January has this problem fixed.

          objdump -T /path/to/libmysqlclient_r.so.16 |grep strmov
          lists strmov and strmov_overlapped.

          However, shared-compat package that comes with 5.5.30 seems to come with outdated libmysqlclient*.so.16 in shared-compat.rpm (the above objdump command does not list strmov). A user recently posted comment about that to MDEV-4361.

          Daniel, can you check whether automation works ok here? I do not know much about how creation of compat packages work, I assume you do. If not , please to reassign to serg.

          wlad Vladislav Vaintroub added a comment - 5.3.12 that was released in January has this problem fixed. objdump -T /path/to/libmysqlclient_r.so.16 |grep strmov lists strmov and strmov_overlapped. However, shared-compat package that comes with 5.5.30 seems to come with outdated libmysqlclient*.so.16 in shared-compat.rpm (the above objdump command does not list strmov). A user recently posted comment about that to MDEV-4361 . Daniel, can you check whether automation works ok here? I do not know much about how creation of compat packages work, I assume you do. If not , please to reassign to serg.

          Ok, I think the fix is to update the mariadb-shared rpms we use to the 5.3.12 version (they're from an older 5.3 version now).

          I'll make the update, backing up the old rpms first.

          dbart Daniel Bartholomew added a comment - Ok, I think the fix is to update the mariadb-shared rpms we use to the 5.3.12 version (they're from an older 5.3 version now). I'll make the update, backing up the old rpms first.

          Wlad has confirmed that the changes I made in buildbot have fixed this issue. The next release of 5.5 will have the fix.

          dbart Daniel Bartholomew added a comment - Wlad has confirmed that the changes I made in buildbot have fixed this issue. The next release of 5.5 will have the fix.

          Sorry, I do not know if this is the correct way to report this but there appears to be a regression in this workaround – using MariaDB 5.5.38 (from yum.mariadb.org);

          1. cat /etc/redhat-release
            CentOS release 5.10 (Final)
          1. rpm -qf /usr/bin/isql
            unixODBC-2.2.11-10.el5

          /usr/bin/isql: relocation error: /usr/lib/libmyodbc3.so: symbol strmov, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference

          1. objdump -T /usr/lib/libmysqlclient.so.15 | grep strmov
            returns blank.
          2. rpm -qf /usr/lib/libmysqlclient.so.15
            MariaDB-compat-5.5.38-1
          dzambonini David Zambonini added a comment - Sorry, I do not know if this is the correct way to report this but there appears to be a regression in this workaround – using MariaDB 5.5.38 (from yum.mariadb.org); cat /etc/redhat-release CentOS release 5.10 (Final) rpm -qf /usr/bin/isql unixODBC-2.2.11-10.el5 /usr/bin/isql: relocation error: /usr/lib/libmyodbc3.so: symbol strmov, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference objdump -T /usr/lib/libmysqlclient.so.15 | grep strmov returns blank. rpm -qf /usr/lib/libmysqlclient.so.15 MariaDB-compat-5.5.38-1

          People

            dbart Daniel Bartholomew
            dfl Nicolay Vizovitin (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 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.