Bug #47194 InnoDB plugin only partly functional on WIndows - in contrast to documentation
Submitted: 8 Sep 2009 19:23 Modified: 10 Sep 2009 9:47
Reporter: Peter Laursen (Basic Quality Contributor) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: InnoDB Plugin storage engine Severity:S3 (Non-critical)
Version:5.1.38 OS:Microsoft Windows (win7 64 bit)
Assigned to: CPU Architecture:Any
Tags: qc

[8 Sep 2009 19:23] Peter Laursen
Description:
I can enable the innoDB plugin, but except for the plugin

| InnoDB              | ACTIVE | STORAGE ENGINE     | ha_innodb_plugin.so ...

I cannot make the information_schema tables appear: 

| INNODB_TRX          | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ...
| INNODB_LOCKS        | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ...
| INNODB_CMP          | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ...
| INNODB_CMP_RESET    | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ...
| INNODB_CMPMEM       | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ...
| INNODB_CMPMEM_RESET | ACTIVE | INFORMATION SCHEMA | ha_innodb_plugin.so ...

How to repeat:
1) this is in configuration:

ignore-builtin-innodb
plugin-load=innodb=ha_innodb_plugin.dll;innodb_trx=ha_innodb_plugin.dll;innodb_locks=ha_innodb_plugin.dll;innodb_cmp=ha_innodb_plugin.dll;innodb_cmp_reset=ha_innodb_plugin.dll;innodb_cmpmem=ha_innodb_plugin.dll;innodb_cmpmem_reset=ha_innodb_plugin.dll

(as listed in http://dev.mysql.com/doc/refman/5.1/en/news-5-1-38.html

"The plugin-load option here is formatted on multiple lines for display purposes but should be written in my.cnf using a single line without spaces in the option value. On Windows, substitute .dll for each instance of the .so extension.")

USE information_schema;

SELECT plugin_name, plugin_version, plugin_library FROM PLUGINS WHERE plugin_name = 'InnoDB';
/*
plugin_name  plugin_version  plugin_library      
-----------  --------------  --------------------
InnoDB       1.0             ha_innodb_plugin.dll
*/

SHOW TABLES LIKE 'inno%'; -- empty set

This is contradictory to documentation in my understanding.  From the quoted passage it should work with this configuration setting.  

The plugin is in C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin (obviously as it loads without specifying path in my.ini).

Suggested fix:
when cheking those:
http://www.innodb.com/products/innodb_plugin/plugin-documentation/
http://www.innodb.com/doc/innodb_plugin-1.0/innodb-information-schema.html

I find nothing usable. 

Either the tables are not supposed to appear in Windows wiht this version (and docs are wrong), or windows version is buggy.
[8 Sep 2009 20:10] Peter Laursen
I forgot to tell that the server is the 64 bit build (if it matters).
[9 Sep 2009 7:20] Calvin Sun
Peter,

What's the result of "show plugins;"?

Thanks,
Calvin
[9 Sep 2009 7:53] Peter Laursen
"SHOW PLUGINS" returns 

/*
Name        Status    Type            Library               License
----------  --------  --------------  --------------------  -------
binlog      ACTIVE    STORAGE ENGINE  (NULL)                GPL    
ARCHIVE     ACTIVE    STORAGE ENGINE  (NULL)                GPL    
BLACKHOLE   ACTIVE    STORAGE ENGINE  (NULL)                GPL    
CSV         ACTIVE    STORAGE ENGINE  (NULL)                GPL    
FEDERATED   DISABLED  STORAGE ENGINE  (NULL)                GPL    
MEMORY      ACTIVE    STORAGE ENGINE  (NULL)                GPL    
MyISAM      ACTIVE    STORAGE ENGINE  (NULL)                GPL    
MRG_MYISAM  ACTIVE    STORAGE ENGINE  (NULL)                GPL    
partition   ACTIVE    STORAGE ENGINE  (NULL)                GPL    
InnoDB      ACTIVE    STORAGE ENGINE  ha_innodb_plugin.dll  GPL    
*/

.. and I believe the statements I provided also tell (only plugins irrelevant for the discussion were filtered).
[9 Sep 2009 15:34] Calvin Sun
Thanks, Peter! We have tested the plugin on 32/64 bit Windows XP, but never tried on Windows 7.
[9 Sep 2009 15:50] Peter Laursen
Was it 32 or 64 bit windows XP that was tested?
Was Vista also not tested?

Could anybody at InnoOracle/MySun dream on testing on RedHat9 and not more recent Linux's before releasing?
[9 Sep 2009 18:00] Shane Bester
just noting that I tried mysql-advanced-gpl-5.1.38-winx64 on 64-bit XP and it works fine running it like this:

mysqld --console --skip-grant-tables --ignore-builtin-innodb --plugin-load=innodb=ha_innodb_plugin.dll;innodb_trx=ha_innodb_plugin.dll;innodb_locks=ha_innodb_plugin.dll;innodb_cmp=ha_innodb_plugin.dll;innodb_cmp_reset=ha_innodb_plugin.dll;innodb_cmpmem=ha_innodb_plugin.dll;innodb_cmpmem_reset=ha_innodb_plugin.dll

mysql> show tables like 'innodb%';
+----------------------------------------+
| Tables_in_information_schema (innodb%) |
+----------------------------------------+
| INNODB_CMP_RESET                       |
| INNODB_TRX                             |
| INNODB_CMPMEM_RESET                    |
| INNODB_CMP                             |
| INNODB_CMPMEM                          |
| INNODB_LOCKS                           |
+----------------------------------------+
6 rows in set (0.00 sec)
[9 Sep 2009 18:22] Peter Laursen
@Shnae .. 

You specify options on the command line. I specified in configuration (in order to run MySQL as Windows service). 

Could you try putting options in configuration and I will try from command line (what I should have thought about of course).
[9 Sep 2009 18:39] Peter Laursen
yes .. WHEN started FROM command line

C:\Program Files\MySQL\MySQL SERVER 5.1>cd BIN

C:\Program Files\MySQL\MySQL SERVER 5.1\bin>mysqld  --IGNORE-builtin-INNODB --pl
ugin-LOAD=INNODB=ha_innodb_plugin.dll;innodb_trx=ha_innodb_plugin.dll;innodb_loc
ks=ha_innodb_plugin.dll;innodb_cmp=ha_innodb_plugin.dll;innodb_cmp_reset=ha_inno
db_plugin.dll;innodb_cmpmem=ha_innodb_plugin.dll;innodb_cmpmem_reset=ha_innodb_p
lugin.dll

.. 

USE information_schema;
SHOW TABLES LIKE 'innodb%';

/*
Tables_in_information_schema (innodb%)
--------------------------------------
INNODB_CMP_RESET                      
INNODB_TRX                            
INNODB_CMPMEM_RESET                   
INNODB_CMP                            
INNODB_CMPMEM                         
INNODB_LOCKS   
*/

(a detail to observe with this test is that options were still in my.ini too - but it probably does not matter) .. so maybe it is only a problem with reading from the .ini or running as a service? If so it is not the first time this happens!

Error log has this from last server start where plugins  loaded successfully:

090909 20:25:51 [Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use Windows interlocked functions.
090909 20:25:51  InnoDB: highest supported file format is Barracuda.
090909 20:25:51 InnoDB Plugin 1.0.4 started; log sequence number 4232908652
090909 20:25:52 [Note] Event Scheduler: Loaded 0 events
090909 20:25:52 [Note] mysqld: ready for connections.
Version: '5.1.38-community'  socket: ''  port: 3306  MySQL Community Server (GPL)

an earlier restart where loading plugins failed is logged like this:

090909  9:39:44 [Note] Plugin 'FEDERATED' is disabled.
090909  9:39:47 [Note] Event Scheduler: Loaded 0 events
090909  9:39:47 [Note] C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld: ready for connections.
Version: '5.1.38-community'  socket: ''  port: 3306  MySQL Community Server (GPL)
[9 Sep 2009 19:30] Peter Laursen
a clarification: On my environment (Windows7 64 bit, MySQL 5.0.38 64 bit):

1) when starting and entering options from command line and running as a 'user program' plugins are loaded
2) when starting as a service with options in configuration file all plugins are not loaded
.
but there is of course also an intermediate variant:
1½) starting from command line as 'user program' specifying options file in the command line.
.. and this (1½) I have not tried.
.
Peter
[10 Sep 2009 8:03] Sveta Smirnova
Thank you for the feedback.

Could you please try to start from command line, but specify options in option file and see if problem is repeatable with such setup. Please also send us full error log file.
[10 Sep 2009 8:26] Peter Laursen
I am very busy now.  Can you tell what is the problem here:

C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqld --options-file="C:\Program Fi
les\MySQL\MySQL Server 5.1\my.ini" --IGNORE-builtin-INNODB --plugin-LOAD=INNODB=
ha_innodb_plugin.dll;innodb_trx=ha_innodb_plugin.dll;innodb_locks=ha_innodb_plug
in.dll;innodb_cmp=ha_innodb_plugin.dll;innodb_cmp_reset=ha_innodb_plugin.dll;inn
odb_cmpmem=ha_innodb_plugin.dll;innodb_cmpmem_reset=ha_innodb_plugin.dll

.. it does not start the server, but no error appears in console.  I execute cmd.exe with explicit admin privileges.

(and very frankly: I do not find it is my job to do this unless you have already tried!)
[10 Sep 2009 8:46] Peter Laursen
Ok .. it should be only

C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqld --options-file="C:\Program Fi
les\MySQL\MySQL Server 5.1\my.ini"

but after trying this something is terrible wrong. I cannot start the service

C:\Windows\system32>net start mysql51
Systemfejlen 193 opstod.

*** er ikke et gyldigt Win32-program. 

(mysql 5.0 and 5.4 is no problem). So I guess I will have to try reboot or even reinstall.
[10 Sep 2009 8:48] Sveta Smirnova
Thank you for the feedback.

I already tried, but could not repeat described problem.
[10 Sep 2009 9:10] Peter Laursen
hhmmm ..

after reboot and reinstall (as repair) I cannot start the service.  So it will take a little time. Trying Windows 'System Restore'.
[10 Sep 2009 9:47] Peter Laursen
I uninstalled MySQL 5.1, removed the service with 'sc' command (as the uninstaller does not on 64 bit windows systems), renamed the old basedir and datadir.

After a fresh install it works fine - also when running as service.

Marking as "closed".