Uploaded image for project: 'MariaDB Connector/C'
  1. MariaDB Connector/C
  2. CONC-746

parsec plugin not unloaded during mtr test run

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 3.4
    • 3.4.4
    • Tests
    • None

    Description

      https://buildbot.mariadb.org/#/builders/369/builds/26206/steps/7/logs/stdio

      unit.conc_connection                     w15 [ pass ]      2
      MTR's internal check of the test case 'unit.conc_connection' failed.
      This means that the test case does not preserve the state that existed
      before the test case was executed.  Most likely the test case did not
      do a proper clean-up. It could also be caused by the previous test run
      by this thread, if the server wasn't restarted.
      This is the diff of the states of the servers before and after the
      test case was executed:
      mysqltest: Logging to '/home/buildbot/amd64-ubuntu-2004-debug/build/mysql-test/var/15/tmp/check-mysqld_1.log'.
      mysqltest: Results saved in '/home/buildbot/amd64-ubuntu-2004-debug/build/mysql-test/var/15/tmp/check-mysqld_1.result'.
      mysqltest: Connecting to server localhost:19660 (socket /home/buildbot/amd64-ubuntu-2004-debug/build/mysql-test/var/tmp/15/mysqld.1.sock) as 'root', connection 'default', attempt 0 ...
      mysqltest: ... Connected.
      mysqltest: Start processing test commands from './include/check-testcase.inc' ...
      mysqltest: ... Done processing test commands.
      --- /home/buildbot/amd64-ubuntu-2004-debug/build/mysql-test/var/15/tmp/check-mysqld_1.result	2024-11-21 07:27:00.936421798 +0000
      +++ /home/buildbot/amd64-ubuntu-2004-debug/build/mysql-test/var/15/tmp/check-mysqld_1.reject	2024-11-21 07:27:49.359574547 +0000
      @@ -900,7 +900,7 @@
       mysql.help_category	920235239
       mysql.help_keyword	1315967545
       mysql.help_relation	3123006815
      -mysql.plugin	0
      +mysql.plugin	768818758
       mysql.procs_priv	0
       mysql.roles_mapping	0
       mysql.tables_priv	454043219
      @@ -909,7 +909,7 @@
       mysql.time_zone_name	2502923589
       mysql.time_zone_transition	3719776009
       mysql.time_zone_transition_type	267780600
      -mysql.global_priv	3162002917
      +mysql.global_priv	2548605602
       PLUGIN_NAME	PLUGIN_VERSION	PLUGIN_STATUS	PLUGIN_TYPE	PLUGIN_TYPE_VERSION	PLUGIN_LIBRARY	PLUGIN_LIBRARY_VERSION	PLUGIN_AUTHOR	PLUGIN_DESCRIPTION	PLUGIN_LICENSE	LOAD_OPTION	PLUGIN_MATURITY	PLUGIN_AUTH_VERSION
       binlog	2.0	ACTIVE	DAEMON	110701.0	NULL	NULL	MySQL AB	This is a plugin to represent the binlog in a transaction	GPL	FORCE	Stable	2.0
       mysql_native_password	1.0	ACTIVE	AUTHENTICATION	2.2	NULL	NULL	R.J.Silk, Sergei Golubchik	Native MySQL authentication	GPL	FORCE	Stable	1.0
      @@ -985,5 +985,6 @@
       THREAD_POOL_STATS	1.0	DISABLED	INFORMATION SCHEMA	110701.0	NULL	NULL	Vladislav Vaintroub	Provides performance counter information for threadpool.	GPL	OFF	Stable	1.0
       THREAD_POOL_WAITS	1.0	DISABLED	INFORMATION SCHEMA	110701.0	NULL	NULL	Vladislav Vaintroub	Provides wait counters for threadpool.	GPL	OFF	Stable	1.0
       partition	1.0	DISABLED	STORAGE ENGINE	110701.0	NULL	NULL	Mikael Ronstrom, MySQL AB	Partition Storage Engine Helper	GPL	OFF	Stable	1.0
      +parsec	1.0	ACTIVE	AUTHENTICATION	2.2	auth_parsec.so	1.15	Nikita Maliavin	Password Authentication using Response Signed with Elliptic Curve	GPL	ON	Beta	1.0
       VARIABLE_NAME	VARIABLE_VALUE
       DEBUG_SYNC	ON - current signals: ''
      Result length mismatch
      not ok
      

      Attachments

        Activity

          danblack Daniel Black added a comment -

          Thanks georg!

          danblack Daniel Black added a comment - Thanks georg !
          marko Marko Mäkelä added a comment - This seems to be broken after updating the libmariadb submodule to include the supposed fix . https://buildbot.mariadb.org/#/builders/710/builds/3762/steps/7/logs/stdio https://buildbot.mariadb.org/#/builders/710/builds/3847/steps/7/logs/stdio

          This is a flawed test case and the fix was insufficient.

          Here's the scenario that is running now both in new and old buildbot:

          1. The test is run as part of unit.conc_connection
          2. The test case for test_parsec is skipped, at this line (connection.c:2367)

          This is because the test can't find the client parsec.so library.

          As a principle, I believe we should make two changes to this test case:

          Change 1

          The test case should either report as FAILED, or SKIP before running any actual SQL queries against the server.

          This line (connection.c:2358) should not run before any of the SKIP tests.

          Or, this line (connection.c:2367) should be marked as FAIL.

          Change 2

          It seems that the test looks for client parsec.so library in the default path, which doesn't work if the server is tested from the source directory, instead of from an installed system path.

          To see this, change line 2367 to FAIL and you will see this line in the logs:

          # parsec plugin not available
          # error: Plugin parsec could not be loaded: /usr/local/mysql/lib/plugin/parsec.so: cannot open shared object file: No such file or directory
          not ok 3 - test_parsec
          

          In old buildbot, the test_parsec is always skipped, leading to check_testcase failure, but the actual unit.conc_connection is not marked as failed. Hence this has gone unnoticed for a long time.

          I am not sure how this issue should be fixed, likely the connector library in the unit test must have some paths set correctly.

          cvicentiu Vicențiu Ciorbaru added a comment - This is a flawed test case and the fix was insufficient. Here's the scenario that is running now both in new and old buildbot: The test is run as part of unit.conc_connection The test case for test_parsec is skipped, at this line (connection.c:2367) This is because the test can't find the client parsec.so library. As a principle, I believe we should make two changes to this test case: Change 1 The test case should either report as FAILED, or SKIP before running any actual SQL queries against the server. This line (connection.c:2358) should not run before any of the SKIP tests. Or, this line (connection.c:2367) should be marked as FAIL. Change 2 It seems that the test looks for client parsec.so library in the default path, which doesn't work if the server is tested from the source directory, instead of from an installed system path. To see this, change line 2367 to FAIL and you will see this line in the logs: # parsec plugin not available # error: Plugin parsec could not be loaded: /usr/local/mysql/lib/plugin/parsec.so: cannot open shared object file: No such file or directory not ok 3 - test_parsec In old buildbot, the test_parsec is always skipped, leading to check_testcase failure, but the actual unit.conc_connection is not marked as failed. Hence this has gone unnoticed for a long time. I am not sure how this issue should be fixed, likely the connector library in the unit test must have some paths set correctly.

          People

            serg Sergei Golubchik
            danblack Daniel Black
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

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