Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-19625

Ambiguity between named_pipe system variable and named_pipe plugin activation option

Details

    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

      Attachments

        Issue Links

          Activity

            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.

            serg Sergei Golubchik added a comment - 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.

            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
            

            GeoffMontee Geoff Montee (Inactive) added a comment - 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

            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.

            serg Sergei Golubchik added a comment - 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.

            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.

            serg Sergei Golubchik added a comment - 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.

            People

              dbart Daniel Bartholomew
              GeoffMontee Geoff Montee (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.