← Back to team overview

maria-developers team mailing list archive

Re: auth_socket/unix_socket auth plugin naming incompatibility with Percona Server

 

Hi Sergei,

thanks for your response!

On Thu, 2015-02-19 at 21:38 +0100, Sergei Golubchik wrote:
> 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
> > auth_socket.so:
> ...
> > 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?
> z
> > 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.

sorry, my mistake - you are correct.

On Percona I am indeed explicitly loading this in the config file using:

plugin-load=auth_socket.so

If I use this same config line in MariaDB, that is enough to get
unix_socket registered.

So the problem is only that the symbol differs between projects for the
same plugin.

Is that something it's worth filing a bug about? Is the aim for
Percona/MariaDB to be compatible where possible?

Thanks,

John.

> 
> 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.
> 
> Regards,
> Sergei





Follow ups

References