Bug #53261 MTR tests archive_plugin and blackhole_plugin fail when compiling with cmake
Submitted: 28 Apr 2010 17:22 Modified: 11 Aug 2010 12:28
Reporter: Olav Sandstå Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Tests Severity:S3 (Non-critical)
Version:5.5.5,5.6.99,6.0.14 OS:Any
Assigned to: Tor Didriksen CPU Architecture:Any

[28 Apr 2010 17:22] Olav Sandstå
Description:
The MTR tests archive_plugin and blackhole_plugin fail when using Cmake to compile the server. The error message is:

CURRENT_TEST: main.archive_plugin
mysqltest: At line 7: query 'INSTALL PLUGIN archive SONAME 'ha_archive.so'' failed: 1126: Can't open shared library '/home/olav/mysql/develop/next-mr-bf/mysql-test/../storage/archive/.libs/ha_archive.so' (errno: 2 cannot open shared object file: No such file or directory)

How to repeat:
1. use the latest sources from mysql-next-mr

2. Compile archive/blackhole as plugins using cmake:

     cmake .
     make

3. Run the plugin_archive test:

     ./mtr archive_plugin
[28 Apr 2010 17:26] Olav Sandstå
The reason for these tests to fail when compiling using Cmake is that Cmake places the plugins in:

  ./storage/archive/ha_archive.so
  ./storage/blackhole/ha_blackhole.so

while Gnu autotools/autoconf/configure uses libtool and the plugins get placed in:

  ./storage/archive/.libs/ha_archive.so
  ./storage/blackhole/.libs/ha_blackhole.so

The archive_plugin and blackhole_plugin test only searches for the plugin in the corresponding .libs directory.
[28 Apr 2010 21:05] Sveta Smirnova
Thank you for the report.

How do you build main tree? I only can get 

main.archive_plugin                      [ skipped ]  archive plugin not available

when trying to run tests and 

cmake .
make

compiles static versions of archive and blackhole plugins only.
[29 Apr 2010 7:30] Olav Sandstå
Thanks for trying to verify this test failure.

I did the following when building MySQL and producing this test failure:

1. Check out a fresh version of the source from mysql-next-mr

2. Run Cmake like this:

     cmake .

3. Compile like this:

     make

I have tried this on Linux and Solaris and in both cases the archive and blackhole storage engines are built as plugins.

What do you have about these storage engines in the CMakeCache.txt file? I have the following which I think says that they should be built as plugins:

  //Link ARCHIVE statically to the server
  WITH_ARCHIVE_STORAGE_ENGINE:BOOL=OFF

  //Link BLACKHOLE statically to the server
  WITH_BLACKHOLE_STORAGE_ENGINE:BOOL=OFF

After building the MySQL server it seems like both archive and blackhole are built as plugins since I have the following files:

  ./storage/archive/ha_archive.so
  ./storage/blackhole/ha_blackhole.so
[29 Apr 2010 8:44] Sveta Smirnova
Thank you for the update.

I have

//Link ARCHIVE statically to the server
WITH_ARCHIVE_STORAGE_ENGINE:BOOL=ON

and 

//Link BLACKHOLE statically to the server
WITH_BLACKHOLE_STORAGE_ENGINE:BOOL=ON

In the CMakeCache.txt
[29 Apr 2010 8:56] Olav Sandstå
Did you get these entries in CMakeCache.txt on a fresh version of the source code by just running "cmake ."? On which OS did this happen? (I did this on Linux and Solaris).

What do you get in CMakeCache.txt if you delete this file and then re-run "cmake ."?
[29 Apr 2010 8:58] Sveta Smirnova
Yes, fresh tree on Linux.

I deleted CMakeCache.txt, then run cmake. already. Same result. Trying fresh clone now.
[29 Apr 2010 9:41] Sveta Smirnova
Thank you for the feedback.

Verified as described using fresh clone.
[29 Apr 2010 9:45] Philip Stoev
Horst, given your experience with plugins and their locations, can you please fix that bug?
[14 Jun 2010 9:24] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/110979

3094 Tor Didriksen	2010-06-14
      Bug #53261 MTR tests archive_plugin and blackhole_plugin fail when compiling with cmake
      
      Let mtr lookup the plugins, rather than hard-coding autotools lib path.
     @ mysql-test/include/not_parallel.inc
        Add new feature for skipping when running in parallel.
     @ mysql-test/mysql-test-run.pl
        Use find_plugin to locate plugins.
        Export opt_parallel in environment.
     @ mysql-test/suite/federated/federated_plugin-master.opt
        Use plugin dir from mtr.
     @ mysql-test/suite/federated/federated_plugin.test
        Skip test, disabled.
     @ mysql-test/t/archive_plugin-master.opt
        Use plugin dir from mtr.
     @ mysql-test/t/archive_plugin.test
        Skip test if running in parallel.
     @ mysql-test/t/blackhole_plugin-master.opt
        Use plugin dir from mtr.
     @ mysql-test/t/blackhole_plugin.test
        Skip test if running in parallel.
[14 Jun 2010 14:24] Horst Hunger
Patch is ready to push.
[15 Jun 2010 8:22] Tor Didriksen
Pushed to trunk-bugfixing.
[15 Jun 2010 13:26] Tor Didriksen
Pushed to next-mr-bugfixing
[22 Jun 2010 13:08] Bugs System
Pushed into 5.5.5-m3 (revid:alik@sun.com-20100622130139-u05awgya93zvbsop) (version source revid:marko.makela@oracle.com-20100603095032-v5ptkkzt1bhz0m1d) (merge vers: 5.1.48) (pib:16)
[22 Jun 2010 13:10] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100622130623-r7yhm89fz9n5t9nb) (version source revid:marko.makela@oracle.com-20100603095032-v5ptkkzt1bhz0m1d) (pib:16)
[11 Aug 2010 9:23] Alexander Nozdrin
Pushed to mysql-5.5 some time ago.
[11 Aug 2010 12:28] Paul DuBois
Changes to test suite. No changelog entry needed.