Description:
When running scripts/mysql_install_db as part of the normal installation process, the server is unable to load the HELP tables due to a crash.
I was able to narrow the problem down to this statement (line 2712 of mysql_install_db):
insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (214,23,"RESET MASTER","Syntax:
RESET MASTER
Deletes all binary logs listed in the index file, resets the binary log
index file to be empty, and creates a new binary log file.
","","reset-master");
If the line break before "RESET MASTER" is removed, the crash does not occur.
How to repeat:
Attempt to run mysql_install_db on a 5.1.3 installation.
Also, you can use these steps to repeat the crash...
- Unpack a 5.1.3 tgz installation
- Change to the installation's basedir
- Place this query into ./fill_help_tables.sql.crash :
insert into help_topic (help_topic_id,help_category_id,name,description,example,url) values (214,23,"RESET MASTER","Syntax:
RESET MASTER
Deletes all binary logs listed in the index file, resets the binary log
index file to be empty, and creates a new binary log file.
","","reset-master");
- Execute this statement:
(echo "use mysql;"; cat ./fill_help_tables.sql.test) | ./bin/mysqld --bootstrap --skip-grant-tables --basedir=. --datadir=./data --skip-innodb --skip-bdb --skip-ndbcluster --max_allowed_packet=8M --net_buffer_length=16K
Note that the Statement fails even if none of the system tables have been created (must be a parsing problem instead of some problem with actually manipulating the tables or something).