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

Broken drop in replacement for mysql and mariadb 10.1

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • 10.2.12, 10.2(EOL)
    • 10.2(EOL)
    • libmariadb
    • None
    • Debian GNU/Linux 8.10 (jessie) amd64

    Description

      I've upgraded mariadb 10.1 to mariadb 10.2. As a result my apache2 doesn't want to start with the message:

      AH00526: Syntax error on line 6 of /etc/apache2/mods-enabled/websocket_vnc_proxy.conf:
      Can't load driver file apr_dbd_mysql.so
      Action 'configtest' failed.
      The Apache error log may have more information.
      

      The part of the conf file of interest is:

      <IfModule mod_websocket.c>
              DBDriver mysql
      

      It uses apr_dbd for the apache to connect to mariadb

      The interesting think is that if I ldd apr_dbd_mysql.so it shows correct linking:

      # ldd /usr/lib/x86_64-linux-gnu/apr-util-1/apr_dbd_mysql.so
      	linux-vdso.so.1 (0x00007ffd2c751000)
      	libmysqlclient.so.18 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 (0x00007fd62ecec000)
      	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fd62eacf000)
      	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fd62e8b4000)
      	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fd62e5b3000)
      	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fd62e3af000)
      	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fd62e004000)
      	libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fd62dda3000)
      	libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fd62d9a7000)
      	/lib64/ld-linux-x86-64.so.2 (0x00007fd62f14d000)
      

      Where the /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 is a symlink to libmariadb.so.3

      The only way to make apache start again is to extract the file /usr/lib/libmysqlclient.so.18.0.0 from 10.1 package and put it as /usr/lib/libmysqlclient.so.18 and execute ldconfig

      if I make /usr/lib/libmysqlclient.so.18 symlink to libmariadb.so.3 the apr_dbd_mysql.so doesn't load again.
      I think this means that something in the headers of libmariadb.so.3 is different and it doesn't load even though it links correctly. May be this is way the 10.1 version uses and actual file for /usr/lib/libmysqlclient.so.18.0.0 instead of a symlink.

      Attachments

        Activity

          georg Georg Richter added a comment -

          apr_dbd_mysql calls my_init (instead of mysql_library_init()), which doesn't exist in MariaDB Connector/C.

          According to the MySQL documentation my_init part of the API, at least since 5.7 (when this function was also exported on Windows).
          MariaDB 10.1 libmysql exports this function on non Windows platforms only.

          georg Georg Richter added a comment - apr_dbd_mysql calls my_init (instead of mysql_library_init()), which doesn't exist in MariaDB Connector/C. According to the MySQL documentation my_init part of the API, at least since 5.7 (when this function was also exported on Windows). MariaDB 10.1 libmysql exports this function on non Windows platforms only.

          georg, so what will we do? export my_init() ?

          serg Sergei Golubchik added a comment - georg , so what will we do? export my_init() ?

          People

            georg Georg Richter
            lukav Anton Avramov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Git Integration

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