[MDEV-19625] Ambiguity between named_pipe system variable and named_pipe plugin activation option Created: 2019-05-29  Updated: 2023-12-15

Status: Open
Project: MariaDB Server
Component/s: Documentation, Plugins, Variables
Affects Version/s: 10.2.24, 10.1.40, 10.3.15, 10.4.5, 10.5.3
Fix Version/s: 10.4, 10.5

Type: Bug Priority: Major
Reporter: Geoff Montee (Inactive) Assignee: Joe Cotellese
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
PartOf
Relates
relates to MDEV-19636 Usage message for plugin activation o... Closed
relates to MDEV-9022 [PATCH] New authentication plugin for... Closed
relates to MDEV-20226 Make plugin activation options into d... Closed

 Description   

There seems to be ambiguity between the named_pipe system variable and the option that can enable/disable the named_pipe authentication plugin.

The system variable enables/disables connections over named pipes:

https://github.com/MariaDB/server/blob/mariadb-10.4.5/sql/sys_vars.cc#L2407

https://mariadb.com/kb/en/library/server-system-variables/#named_pipe

The option enables/disables the named_pipe authentication plugin:

https://github.com/MariaDB/server/blob/mariadb-10.4.5/sql/sql_plugin.cc#L3720

https://github.com/MariaDB/server/blob/mariadb-10.4.5/sql/sql_plugin.cc#L54

https://mariadb.com/kb/en/library/authentication-plugin-named-pipe/#named_pipe

If someone configures this in their my.cnf:

[mariadb]
...
named_pipe=1

Would that refer to the system variable, or the plugin activation option, or would that somehow refer to both?

Can users still use the plugin activation option with the same name?:

[mariadb]
plugin_load_add = auth_named_pipe
named_pipe=FORCE_PLUS_PERMANENT

https://mariadb.com/kb/en/plugin-overview/#configuring-plugin-activation-at-server-startup



 Comments   
Comment by Sergei Golubchik [ 2020-07-22 ]

GeoffMontee, what happens now? What does --named-pipe do?

It is supposed to enable connections over named pipes. When one wants to enable/disable a plugin one can always use --plugin-named-pipe which was implemented precisely to resolve conflicts like this.

Comment by Geoff Montee (Inactive) [ 2020-07-22 ]

Hi serg,

what happens now? What does --named-pipe do?

I haven't tested it myself yet. I only discovered the ambiguity while documenting both options.

I do most of my testing on Linux, so I would have to set up a Windows test environment. I can definitely try to find time to do that if no one else wants to perform the test.

When one wants to enable/disable a plugin one can always use --plugin-named-pipe which was implemented precisely to resolve conflicts like this.

The plugin activation option can be prefixed with the string "plugin"? Does that mean that users should be able to do something like this?:

[mariadb]
# enable named pipe connections
named_pipe=ON
 
# allow named pipe authentication
plugin_load_add = auth_named_pipe
# prevent the plugin from being uninstalled
plugin_named_pipe=FORCE_PLUS_PERMANENT

Comment by Sergei Golubchik [ 2020-07-22 ]

Because the server first parses the command line using the built-in list options and only after that looks for plugins, I'm pretty sure --named-pipe will mean "connections over named pipes".

Yes, any command-line option that starts from --pluginname is also recognized in the alternative form of --plugin-pluginname. For example, --plugin-innodb-fast-shutdown=2 should work just fine and do exactly what you think it does.

Comment by Sergei Golubchik [ 2020-08-24 ]

Let's say, documentation should clarify, that one can use --plugin-named-pipe to enable the plugin avoiding the ambiguity.

Either that or it's not a bug.

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