[MDEV-12920] Header changes in MariaDB 10.1.23 ? Created: 2017-05-25 Updated: 2017-06-13 |
|
| Status: | Confirmed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 10.1.23 |
| Fix Version/s: | 10.1 |
| Type: | Bug | Priority: | Major |
| Reporter: | jocelyn fournier | Assignee: | Sergei Golubchik |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
gcc 6.3.0 on Ubuntu zesty |
||
| Issue Links: |
|
||||||||
| Description |
|
Hi, I'm trying to compile tokudb-backup against 10.1.23 and it fails with the following error :
There's no compile issue with MariaDB 10.1.22 source code. How to repeat: Get 10.1.23 source code, extract and then :
I do not expect this kind issue between minor version upgrade. Thanks, |
| Comments |
| Comment by Sergei Golubchik [ 2017-05-25 ] | ||||
|
This was probably caused by this commit: 7bf409593e. Storage engines are exempt from this rule, as are plugins that use RECOMPILE_FOR_EMBEDDED keyword (which explicitly means that a plugin bypasses the API and relies on server internals). This commit does not change the ABI, it only affects how plugins are compiled. | ||||
| Comment by jocelyn fournier [ 2017-05-25 ] | ||||
|
That's annoying. If I try to use the .so compiled with the 10.1.22 source, it doesn't work with 10.1.23: | ||||
| Comment by Sergei Golubchik [ 2017-05-26 ] | ||||
|
Yes, this was always the case, since 5.5 or earlier. Some plugins have stable API, and their API version doesn't change for years. Some plugins have kind of unstable API, and there API version is set to match the server version, so old compiled plugins won't work. Storage engines are like that. And daemons too, for some reason, although they probably shouldn't be. Anyway, your immediate workaround would be to add RECOMPILE_FOR_EMBEDDED to the CMakeLists.txt of this plugin. Like for MyISAM:
| ||||
| Comment by jocelyn fournier [ 2017-05-26 ] | ||||
|
Thanks Sergei, I was able to compile successfully the plugin with the extra RECOMPILE_FOR_EMBEDDED | ||||
| Comment by Sergei Golubchik [ 2017-05-26 ] | ||||
|
joce, I don't know what kind of fix we can do for this bug. I can freeze the Daemon API version, so that old daemon plugin binaries would work for newer servers. That's only guaranteed to work, of course, if the plugin doesn't use RECOMPILE_FOR_EMBEDDED, so it won't help you much. | ||||
| Comment by jocelyn fournier [ 2017-05-26 ] | ||||
|
Why not marking all plugins impure by default in 10.1 to not break compatibly with old modules, explicitly declare mariabackup as pure, and let the "pure" by default change for 10.2? Another option would be to include tokudb_backup as an official plugin | ||||
| Comment by Sergei Golubchik [ 2017-05-26 ] | ||||
|
Ok, thanks. I'll make it dependent on |