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 Geoff Montee (Inactive) created issue -
            GeoffMontee Geoff Montee (Inactive) made changes -
            Field Original Value New Value
            GeoffMontee Geoff Montee (Inactive) made changes -
            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
            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:

            {noformat}
            [mariadb]
            ...
            named_pipe=1
            {noformat}

            Would that refer to the system variable, or the plugin activation option, or would that somehow refer to both?
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            GeoffMontee Geoff Montee (Inactive) made changes -
            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:

            {noformat}
            [mariadb]
            ...
            named_pipe=1
            {noformat}

            Would that refer to the system variable, or the plugin activation option, or would that somehow refer to both?
            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:

            {code:ini}
            [mariadb]
            ...
            named_pipe=1
            {code}

            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?:

            {code:ini}
            [mariadb]
            plugin_load_add = auth_named_pipe
            named_pipe=FORCE_PLUS_PERMANENT
            {code}

            https://mariadb.com/kb/en/plugin-overview/#configuring-plugin-activation-at-server-startup
            GeoffMontee Geoff Montee (Inactive) made changes -
            Affects Version/s 10.5.3 [ 24263 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            Fix Version/s 10.5 [ 23123 ]
            julien.fritsch Julien Fritsch made changes -
            Labels need_feedback
            GeoffMontee Geoff Montee (Inactive) made changes -
            Labels need_feedback

            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.
            serg Sergei Golubchik made changes -
            Labels need_feedback

            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
            GeoffMontee Geoff Montee (Inactive) made changes -
            Labels need_feedback

            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.
            julien.fritsch Julien Fritsch made changes -
            Labels need_feedback
            serg Sergei Golubchik made changes -
            Labels need_feedback
            serg Sergei Golubchik made changes -
            Component/s Documentation [ 10903 ]
            Component/s Authentication and Privilege System [ 13101 ]
            serg Sergei Golubchik made changes -
            Assignee Vladislav Vaintroub [ wlad ] Sergei Golubchik [ serg ]

            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.
            serg Sergei Golubchik made changes -
            Assignee Sergei Golubchik [ serg ] Geoff Montee [ geoffmontee ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.1 [ 16100 ]
            julien.fritsch Julien Fritsch made changes -
            Epic Link MENT-51 [ 75581 ]
            julien.fritsch Julien Fritsch made changes -
            julien.fritsch Julien Fritsch made changes -
            Epic Link MENT-51 [ 75581 ]
            serg Sergei Golubchik made changes -
            Workflow MariaDB v3 [ 97099 ] MariaDB v4 [ 141309 ]
            GeoffMontee Geoff Montee (Inactive) made changes -
            ralf.gebhardt Ralf Gebhardt made changes -
            Fix Version/s 10.2 [ 14601 ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.3 [ 22126 ]
            julien.fritsch Julien Fritsch made changes -
            Assignee Geoff Montee [ geoffmontee ] Joe Cotellese [ JIRAUSER54006 ]
            julien.fritsch Julien Fritsch made changes -
            Assignee Joe Cotellese [ JIRAUSER54006 ] Daniel Bartholomew [ dbart ]
            julien.fritsch Julien Fritsch made changes -
            Fix Version/s 10.4 [ 22408 ]

            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.