Bug #51891 MySQL crash when using ignore_builtin_innodb
Submitted: 9 Mar 2010 20:38 Modified: 10 Mar 2010 15:27
Reporter: Mark Grennan Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Options Severity:S2 (Serious)
Version: 5.1.37sp1-enterprise-gpl-advanced-log OS:Linux (Red Hat Enterprise Linux Client release 5.4 )
Assigned to: CPU Architecture:Any
Tags: crash, ignore_builtin_innodb

[9 Mar 2010 20:38] Mark Grennan
Description:
When I add the option ignore_builtin_innodb to the [mysqld] sections of my.cnf and restart MySQL it will not start. 

I don't get any thing in the .err file.  I get this on the console.

Starting MySQL.Manager of pid-file quit without updating

How to repeat:
add ignore_builtin_innodb to the [mysqld] section of my.cnf and restart
[9 Mar 2010 21:31] Giuseppe Maxia
Can't repeat using MySQL 5.1.37 and 5.1.44 on Linux Red Hat ES

mysql> show variables like 'ignore%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| ignore_builtin_innodb | ON    | 
+-----------------------+-------+
1 row in set (0.00 sec)

mysql> select version();
+--------------------------------+
| version()                      |
+--------------------------------+
| 5.1.37-enterprise-gpl-advanced | 
+--------------------------------+
1 row in set (0.00 sec)

Can you provide more information? For example, 
* was it a new server?
* does your my.cnf contain *innodb* options?
[9 Mar 2010 22:26] Mark Grennan
This is a new (just installed) server.  my.cnf it does contain InnoDB options.
It is our test production system. (ie changes are made to this system first before going into production.)

After the Webinar today I wanted to test taking advantage of the new InnoDB plugin.  I'm trying to install http://www.innodb.com/wp/products/innodb_plugin/download/v104/.  But just adding the ignore_builtin_innodb options without any other change it will not start.

--- my.cnf ---------------------
# The following options will be passed to all MySQL clients
# This is for a Mysql 5.1.29 or gratter system.
[client]
user            = dbaops
password        = db@0ps
port            = 3306
socket          = /data/mysql/mysql.sock

# The MySQL server
[mysqld]
datadir         = /data/mysql
port            = 3306
socket          = /data/mysql/mysql.sock
user=mysql
large-pages     # http://dev.mysql.com/doc/refman/5.0/en/large-page-support.html
#Plugins
#ignore_builtin_innodb
#plugin_load=innodb=ha_innodb.so;innodb_trx=ha_innodb.so;innodb_locks=ha_innodb.so;innodb_lock_waits=ha_innodb.so;innodb_cmp=ha_innodb.so;innodb_cmp_reset=ha_innodb.so;innodb_cmpmem=ha_innodb.so;innodb_cmpmem_reset=ha_innodb.so

# Network management
max_connections         = 2000  # number of simultaneous client connections allowed
max_user_connections    = 50    # number of connections a user can make
interactive_timeout     = 600   # seconds to waits for activity on interactive connection
wait_timeout            = 600   # seconds to waits for activity on noninteractive connection
connect_timeout         = 60    # on connect seconds to waits for a connect packet
max_connect_errors      = 10000 # IO stops after this number of bad connections one good connect reset

# MyISAM Buffering
query_cache_limit       = 8M    # Don't cache results that are larger than this number of bytes.
query_cache_size        = 16M   # caching query Sizes > 128M may reduce performance
query_cache_type        = 1     # 1= ON - 2 = OFF - 3 =DEMAND
thread_cache_size       = 128   # How many threads the server should cache for reuse
key_buffer              = 32M   # 64M for 1GB, 128M for 2GB, 256 for 4GB
key_buffer_size         = 1536M # Should be some less then 75% of total RAM
join_buffer_size        = 1M    # 1M for 1GB, 2M for 2GB, 4M for 4GB
max_allowed_packet      = 32M   # maximum size of one packet or any generated/intermediate string
table_open_cache        = 2048  # number of open tables for all threads
sort_buffer_size        = 1M    # 1M for 1GB, 2M for 2GB, 4M for 4GB
read_buffer_size        = 1M    # 1M for 1GB, 2M for 2GB, 4M for 4GB
read_rnd_buffer_size    = 768K  # 768K for 1GB, 1536K for 2GB, 3072K for 4GB
myisam_sort_buffer_size = 16M   # 32M for 1GB, 64M for 2GB, 128 for 4GB
table_definition_cache  = 768   # number of table definitions that can be stored in the definition cache
skip-locking

# InnoDB services
innodb_data_home_dir    = /data/mysql   # Uncomment the following if you are using InnoDB tables
innodb_data_file_path   = ibdata1:10M:autoextend
innodb_log_group_home_dir = /data/mysql/
innodb_buffer_pool_size = 24M           # You can set .._buffer_pool_size up to 50 - 80 %
                                        # of RAM but beware of setting memory usage too high
innodb_additional_mem_pool_size = 2M
innodb_log_file_size    = 5M            # Set .._log_file_size to 25 % of buffer pool size
innodb_log_buffer_size  = 8M            # size in bytes of the buffer that InnoDB  uses to write to the log files on disk
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

# Loging and Replication all found in the datadir
log-error               = /data/mysql/mysqld.log
log-slow-queries        = TRUE
log-output              = TABLE
log-bin                 = mysql-bin     # Replication log file required for replication
expire_logs_days        = 5
binlog_format           = mixed         # binary logging format - mixed recommended
server-id               = 1             # each server doing replication requires a unique ID

[mysqldump]
quick
max_allowed_packet      = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size         = 1280M
sort_buffer_size        = 100M
read_buffer             = 2M
write_buffer            = 2M

[mysqlhotcopy]
interactive-timeout

--------------------------------------------------
mysql> show variables like 'ignore%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| ignore_builtin_innodb | OFF   |
+-----------------------+-------+
1 row in set (0.00 sec)

mysql> select version();
+---------------------------------------+
| version()                             |
+---------------------------------------+
| 5.1.37sp1-enterprise-gpl-advanced-log |
+---------------------------------------+
1 row in set (0.00 sec)
[10 Mar 2010 15:27] Giuseppe Maxia
This is not a bug.
As noted in the InnoDB plugin manual, when using "ignore_builtin_innodb", you must add the "loose_" prefix to all the "innodb*" options, such as "innodb_data_file_path"
If you don't, the server starts without InnoDB, and then does not recognize the InnoDB specific options.
If you change "innodb_data_file_path" to "loose_innodb_data_file_path" and do the same to the other options, the server starts fine.
http://www.innodb.com/doc/innodb_plugin-1.0/innodb-plugin-installation.html