maria-developers team mailing list archive
Mailing list archive
Re: auth_socket/unix_socket auth plugin naming incompatibility with Percona Server
On Feb 19, John Leach wrote:
> I just tested a switch from Percona Server 5.6 to MariaDB 10.0.16 and
> hit a problem with socket authentication.
> Percona renamed it to auth_socket, matching the actual library filename
> auth_socket.so and MariaDB chose unix_socket, but keeping the filename
> This isn't great, but it's made worse because the plugin is successfully
> loaded in both cases (because the filename is auth_socket.so) and no
> errors are reported in the logs, but the plugin just exposes itself
> internally using a different name so reports that auth_socket isn't
> loaded in MariaDB.
How do you load the plugin? I suppose it's plugin-load=auth_socket.so
because plugin loads successfully even if the name is different?
> I fixed it by starting mysql with skip-grant-tables and running:
> update mysql.user set plugin='unix_socket' where plugin='auth_socket';
> but that alone doesn't work, because MariaDB doesn't know that
> unix_socket is provided by auth_socket.so:
No, that should've been sufficient. MariaDB knows that unix_socket is
provided by auth_socket.so when auth_socket.so is loaded.
If auth_socket.so is not loaded, neither MariaDB nor Percona Server will
know what plugin is in what .so file.
There must be something else you've done besides this update statement.
> Any thoughts on what to do here? Can the plugin be made to recognise
> both names, so other users don't end up in this situation? I presume
> there would need to be both auth_socket.so and unix_socket.so.
But .so name is the same both in MariaDB and in Percona Server.
It's always auth_socket.so, there is no unix_socket.so.
A plugin can not have two names, but technically it's possible to have
two plugins in the same .so file, they could share all the code and only
differ in names.