Bug #68684 Wrong filename in error message for InnoDB memcached config
Submitted: 15 Mar 2013 12:52 Modified: 25 Sep 2013 15:56
Reporter: Daniël van Eeden (OCA) Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Memcached Severity:S3 (Non-critical)
Version:5.6.10 OS:Any
Assigned to:
Tags: innodb, memcached

[15 Mar 2013 12:52] Daniël van Eeden
Description:
Error message:
 InnoDB_Memcached: Unable to open table 'innodb_memcache/containers'
 InnoDB_Memcached: Please create config table'containers' in database 'innodb_memcache' by running 'scripts/innodb_config.sql. error 31'
Failed to initialize instance. Error code: 13

How to repeat:
Create MySQL 5.6.10 Sandbox on Linux

Then run:
install plugin daemon_memcached soname "libmemcached.so";

The message is in the error log

Suggested fix:
Change the filename in the message from scripts/innodb_config.sql to share/innodb_memcached_config.sql

This has to be done for plugin/innodb_memcached/innodb_memcache/src/innodb_config.c for the messages in innodb_config_meta_hash_init and innodb_config_container
[15 Mar 2013 12:55] Daniël van Eeden
After loading the tables as indicated in the message the plugin has to be uninstalled and then installed again or the server has to be restarted.
[15 Mar 2013 13:01] Shane Bester
You're correct, at least in the .tar.gz generic linux build it's in ./share/
[15 Mar 2013 13:03] Shane Bester
I'm sure I know what error 31 is either...

2013-03-14 03:12:37 15437 [Note] Server socket created on IP: '::'.
 InnoDB_Memcached: Unable to open table 'innodb_memcache/containers'
 InnoDB_Memcached: Please create config table'containers' in database 'innodb_memcache' by running 'scripts/innodb_config.sql. error 31'
Failed to initialize instance. Error code: 13
2013-03-14 03:12:37 15437 [Note] /home/sbester/mysql/release/mysql-5.6.11-linux-x86_64/bin/mysqld: ready for connections.
Version: '5.6.11'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
[
[15 Mar 2013 14:14] Daniël van Eeden
Error 31 is DB_TABLE_NOT_FOUND (dberr_t from storage/innobase/include/db0err.h, storage/innobase/include/api0api.h).

The error is a bit confusing as it's an InnoDB error code while there is also a MySQL error code (13) in the next line.

$ perror 31
OS error code  31:  Too many links
$ perror 13
OS error code  13:  Permission denied

The documentation doesn't mention this error code.
http://dev.mysql.com/doc/refman/5.6/en/innodb-error-handling.html
[25 Sep 2013 15:56] Bugs System
Noted in 5.6.15, 5.7.3 changelogs:

 An "InnoDB" "memcached" configuration error message contained an
incorrect file name. The error message stated, "Please create config table
containers in database innodb_memcache by running innodb_config.sql. error
31.". The correct file name is "innodb_memcached_config.sql". Also, the
"error 31" portion of the error message has been translated to its text
equivalent, which is "Table not found".