THE SITUATION: We're running MySQL 3.23.51. We have a table which has a primary-keyed field 'sid'. We have four tables what have foreign key references on that field. We deleted all rows from those four tables that had values in that foreign key index and then tried to delete the row in the main table. The main table delete failed with a parent row reference error.
Fine, MySQL/InnoDB have gone through a few revisions and perhaps this bug is fixed. Certainly, running this old version isn't going to help us. THE PROBLEM: After downloading and compiling MySQL 3.23.55 (we use the compile flags from MySQL's web site, but we compiled our own), we switched our config over to the new compilation (same data, same config, etc. just a new binary) and started up. On a table scan (SHOW TABLE STATUS, `mysql` without -A, etc.), MySQL crashes with an assertion: 030307 21:08:02 mysqld restarted 030307 21:08:03 InnoDB: Started /usr/local/mysql-3.23.55/libexec/mysqld: ready for connections 030307 21:08:21 InnoDB: Assertion failure in thread 15 in file dict0load.c line 677 InnoDB: We intentionally generate a memory trap. InnoDB: Send a detailed bug report to [EMAIL PROTECTED] mysqld got signal 11; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will try our best to scrape up some info that will hopefully help diagnose the problem, but since we have already crashed, something is definitely wrong and this may fail key_buffer_size=33550336 record_buffer=131072 sort_buffer=16777208 max_used_connections=3 max_connections=500 threads_connected=4 It is possible that mysqld could use up to key_buffer_size + (record_buffer + sort_buffer)*max_connections = 4094456 K bytes of memory Hope that's ok, if not, decrease some variables in the equation 030307 21:08:21 mysqld restarted In the MySQL client it looks like this: mysql> use tx; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Didn't find any fields in table 'task' Didn't find any fields in table 'taxbase' Didn't find any fields in table 'terms' Didn't find any fields in table 'ticket' Didn't find any fields in table 'ticket_master' Didn't find any fields in table 'ticket_perm_bits' Didn't find any fields in table 'traffic_service_history' Didn't find any fields in table 'uid' Database changed If it's reading the tables in order, it's having a problem with one of the following tables: CREATE TABLE sync_times ( system varchar(48) NOT NULL default '', host varchar(255) NOT NULL default '', tstamp datetime default NULL, PRIMARY KEY (system,host) ) TYPE=InnoDB; CREATE TABLE task ( task int(11) NOT NULL auto_increment, flags varchar(255) default NULL, depends int(11) default NULL, type varchar(40) default NULL, name varchar(100) default NULL, description text, department varchar(20) default NULL, owner varchar(20) default NULL, customer int(11) default NULL, contact int(11) default NULL, origin varchar(255) default NULL, status varchar(20) default NULL, assigned varchar(20) default NULL, entry_time datetime default NULL, due_time datetime default NULL, finish_time datetime default NULL, tstamp timestamp(14) NOT NULL, PRIMARY KEY (task), KEY _task_ (task), KEY _customer_ (customer), KEY _contact_ (contact), KEY _depends_ (depends), KEY _name_ (name), FOREIGN KEY (`depends`) REFERENCES `tx.task` (`task`), FOREIGN KEY (`customer`) REFERENCES `tx.customer` (`customer`), FOREIGN KEY (`contact`) REFERENCES `tx.contact` (`contact_id`) ) TYPE=InnoDB; Backing out to the old version works fine. The only glaringly obvious thing I see there is a table putting a foreign key onto itself, but that should be allowed, no? Thanks for any assistance. Philip * Philip Molter * Texas.net Internet * http://www.texas.net/ * [EMAIL PROTECTED] --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php