[MDEV-21450] ha_connect.so plugin broken Created: 2020-01-09  Updated: 2020-01-13  Resolved: 2020-01-13

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - Connect
Affects Version/s: 10.2.30, 10.3.21, 10.4.11
Fix Version/s: 10.2.31, 10.3.22, 10.4.12

Type: Bug Priority: Major
Reporter: Michal Schorm Assignee: Olivier Bertrand
Resolution: Fixed Votes: 0
Labels: CONNECT, Connect-Engine, connect, connect-engine
Environment:

Fedora



 Description   

Hello,

The Connect SE plugin can't be used after compilation.

Previous 10.3 & 10.4 versions are not affected. The issue must have been introduced in those affected versions.

Sample from the error log:
(configured via config file with "log_warnings=9" and "plugin_load_add=ha_connect")

[ERROR] mysqld: Can't open shared library '/usr/lib64/mariadb/plugin/ha_connect.so' (errno: 22, undefined symbol: _ZN6XMLDEFC1Ev)
[ERROR] Couldn't load plugins from 'ha_connect.so'.
[ERROR] mysqld: Can't open shared library '/usr/lib64/mariadb/plugin/ha_connect.so' (errno: 0, undefined symbol: _ZN6XMLDEFC1Ev)
[ERROR] Couldn't load plugins from 'ha_connect.so'.
[Note] Initializing built-in plugins
[Note] Initializing plugins specified on the command line
[ERROR] mysqld: Can't open shared library '/usr/lib64/mariadb/plugin/ha_connect.so' (errno: 22, undefined symbol: _ZN6XMLDEFC1Ev)
[ERROR] Couldn't load plugins from 'ha_connect.so'.

Result after running "mysql"

# mysql
mysql: unknown variable 'plugin_load_add=ha_connect'

Also, the whole Connect testsuite fail on all affected versions:
https://jira.mariadb.org/browse/MDEV-19786

I won't introduce the new versions to Fedora without a fix.



 Comments   
Comment by Michal Schorm [ 2020-01-09 ]

May
https://github.com/MariaDB/server/commit/7a9eca1191
or more likely
https://github.com/MariaDB/server/commit/2cb4b152c8
be the cause?

Comment by Olivier Bertrand [ 2020-01-09 ]

Are you compiling MariaDB from source? There seem to be a problem with the XML package. This new version did not change anything for the XML table type.

Comment by Michal Schorm [ 2020-01-09 ]

As a source, I use tarballs, accessible via
https:// downloads.mariadb.org/interstitial/mariadb-

{VERSION} /source/mariadb- {VERSION}

.tar.gz
I re-downloaded the sources, and did hash verification. I have the same ones.

Comment by Michal Schorm [ 2020-01-09 ]

To be exact - I'm the maintainer of MariaDB & MySQL packages in Fedora project - I build the Mariadb this way as usual.

You can check the source I use here:
https://src.fedoraproject.org/rpms/mariadb/tree/master
(maybe mariadb.spec may come handy)

The 10.3.21 version is not pushed (obviously - I'm working on getting it working & pushed )
However, I changed literally nothing form the 10.3.20 verison - just bumped the version number.
Same for 10.4.10 vs 10.4.11.

Comment by Michal Schorm [ 2020-01-09 ]

> This new version did not change anything for the XML table type.
So far I tested only on Fedora Rawhide.
You helped me relize that could be a problem in the distro ... but I just tested it on the Fedora 30 and got the same (broken) results.

So now I'm pretty confident, it's on "your" side.

Comment by Olivier Bertrand [ 2020-01-09 ]

I think I know what happened. The new version adds a new table type TABREST that unconditionnaly can call the XML table type. If you don't have the libxml2 package installed, then the XML table type is not generated and the XMLDEF class is not there (_ZN6XMLDEFC1Ev is probably the mangled name of the C++ class XMLDEF). The bug is that this call should be conditionnal.

Two turnaround:

  • Install the libxml2 package.
  • Don't make the TABREST table type (compile with "Compile CONNECT storage engine with REST support=NO").
Comment by Michal Schorm [ 2020-01-10 ]

Thanks!

Adding "libxml2-devel" as a BuildRequires solved the issue.

Generated at Thu Feb 08 09:07:14 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.