OK, so an update. Stewart, I may need your help on this. I can't get the embedded_innodb test suite to run cleanly. I get 5 test failures: jpipes@serialcoder:~/repos/drizzle/bug552420/tests$ LD_PRELOAD=/home/jpipes/repos/libeatmydata/trunk/libeatmydata.so ./dtr --suite=embedded_innodb --force Logging: ./dtr --suite=embedded_innodb --force Drizzle Version 2010.04.1511 Using MTR_BUILD_THREAD = -69.4 Using MASTER_MYPORT = 9306 Using MASTER_MYPORT1 = 9307 Using SLAVE_MYPORT = 9308 Using SLAVE_MYPORT1 = 9309 Using SLAVE_MYPORT2 = 9310 Using MC_PORT = 9316 Killing Possible Leftover Processes Removing Stale Files Creating Directories Saving snapshot of installed databases ================================================================================ DEFAULT STORAGE ENGINE: innodb TEST RESULT TIME (ms) -------------------------------------------------------------------------------- embedded_innodb.basic_create_nullable [ pass ] 8 embedded_innodb.basic_create_table [ pass ] 3 embedded_innodb.basic_create_with_index [ pass ] 19 embedded_innodb.basic_delete_all_rows [ fail ] drizzletest: At line 3: query 'delete from t1' failed: 1031: Table storage engine for 't1' doesn't have this option The result from queries just before the failure was: CREATE TABLE t1 (a int primary key); insert into t1 values (1),(2),(3); delete from t1; More results from queries before failure can be found in /home/jpipes/repos/drizzle/bug552420/tests/var/log/basic_delete_all_rows.log Stopping All Servers Restoring snapshot of databases Saving core Resuming Tests embedded_innodb.basic_delete_row [ fail ] drizzletest: At line 4: query 'delete from t1 where a=2' failed: 1031: Table storage engine for 't1' doesn't have this option The result from queries just before the failure was: CREATE TABLE t1 (a int primary key); insert into t1 values (1),(2),(3),(4),(5),(6); select * from t1 order by a; a 1 2 3 4 5 6 delete from t1 where a=2; More results from queries before failure can be found in /home/jpipes/repos/drizzle/bug552420/tests/var/log/basic_delete_row.log Stopping All Servers Restoring snapshot of databases Saving core Resuming Tests embedded_innodb.basic_drop_table [ pass ] 9 embedded_innodb.basic_index_lookup [ pass ] 5 embedded_innodb.basic_innodb_table_proto_table [ pass ] 3 embedded_innodb.basic_innodb_truncate_table [ pass ] 3 embedded_innodb.basic_insert [ pass ] 2 embedded_innodb.basic_insert_multi_column [ pass ] 22 embedded_innodb.basic_insert_pkey_duplicate [ pass ] 2 embedded_innodb.basic_pkey_index_reverse_scan [ pass ] 7 embedded_innodb.basic_pkey_index_scan [ pass ] 2 embedded_innodb.basic_rename_table [ pass ] 3 embedded_innodb.basic_savepoint [ pass ] 3 embedded_innodb.basic_select [ pass ] 2 embedded_innodb.basic_select_multirow [ pass ] 2 embedded_innodb.basic_show_tables [ pass ] 1 embedded_innodb.basic_statement_rollback [ pass ] 2 embedded_innodb.basic_transaction [ pass ] 4 embedded_innodb.basic_transaction_autocommit [ pass ] 16 embedded_innodb.basic_transaction_rollback [ pass ] 13 embedded_innodb.basic_update [ fail ] drizzletest: At line 3: query 'update t1 set a=2 where a=1' failed: 1031: Table storage engine for 't1' doesn't have this option The result from queries just before the failure was: create table t1(a int primary key); insert into t1 values (1); update t1 set a=2 where a=1; More results from queries before failure can be found in /home/jpipes/repos/drizzle/bug552420/tests/var/log/basic_update.log Stopping All Servers mysql-test-run: WARNING: Forcing kill of process 10217 Restoring snapshot of databases Resuming Tests embedded_innodb.basic_with_indexes [ pass ] 3 embedded_innodb.config_table_function [ pass ] 1 embedded_innodb.cursor_position [ pass ] 11 embedded_innodb.index_multicolumn_unique [ pass ] 29 embedded_innodb.index_null [ pass ] 9 embedded_innodb.index_varchar [ pass ] 11 embedded_innodb.insert_null [ pass ] 6 embedded_innodb.libinnodb_datadict_dump_func [ pass ] 3 embedded_innodb.libinnodb_version_func [ pass ] 0 embedded_innodb.plugin_load [ pass ] 1 embedded_innodb.rename [ pass ] 14 embedded_innodb.rnd_pos [ fail ] drizzletest: At line 17: query 'UPDATE t1 SET t1.xstatus_vor = Greatest(t1.xstatus_vor,1) WHERE t1.aufnr = "40004712" AND t1.plnfl = "000001" AND t1.vornr > "0010" ORDER BY t1.vornr ASC LIMIT 1' failed: 1031: Table storage engine for 't1' doesn't have this option The result from queries just before the failure was: CREATE TABLE t1 ( aufnr varchar(12) NOT NULL default '', plnfl varchar(6) NOT NULL default '', vornr varchar(4) NOT NULL default '' primary key, xstatus_vor int NOT NULL default '0' ); INSERT INTO t1 VALUES ('40004712','000001','0010',9); INSERT INTO t1 VALUES ('40004712','000001','0020',0); UPDATE t1 SET t1.xstatus_vor = Greatest(t1.xstatus_vor,1) WHERE t1.aufnr = "40004712" AND t1.plnfl = "000001" AND t1.vornr > "0010" ORDER BY t1.vornr ASC LIMIT 1; More results from queries before failure can be found in /home/jpipes/repos/drizzle/bug552420/tests/var/log/rnd_pos.log Stopping All Servers Restoring snapshot of databases Saving core Resuming Tests embedded_innodb.secondary_index_scan [ pass ] 10 embedded_innodb.status_table_function [ fail ] drizzletest: At line 13: query 'delete from t1' failed: 1031: Table storage engine for 't1' doesn't have this option The result from queries just before the failure was: < snip > have_atomic_builtins SELECT * FROM DATA_DICTIONARY.INNODB_STATUS WHERE NAME="page_size"; NAME VALUE page_size 16384 SELECT (@fsync_count:= VALUE) AS fsyncs FROM DATA_DICTIONARY.INNODB_STATUS WHERE NAME="fsync_req_done"; fsyncs # create table t1 (a int primary key); SELECT (value - @fsync_count) AS fsyncs FROM DATA_DICTIONARY.INNODB_STATUS WHERE NAME="fsync_req_done"; fsyncs 4 insert into t1 values (1); SELECT (value - @fsync_count) AS fsyncs FROM DATA_DICTIONARY.INNODB_STATUS WHERE NAME="fsync_req_done"; fsyncs 5 insert into t1 values (5),(2),(3),(4); SELECT (value - @fsync_count) AS fsyncs FROM DATA_DICTIONARY.INNODB_STATUS WHERE NAME="fsync_req_done"; fsyncs 6 delete from t1; More results from queries before failure can be found in /home/jpipes/repos/drizzle/bug552420/tests/var/log/status_table_function.log Stopping All Servers Restoring snapshot of databases Saving core Resuming Tests -------------------------------------------------------------------------------- Stopping All Servers Failed 5/38 tests, 86.84% were successful. This is on an unmodified trunk. Please advise. Also, I don't see the code you are referring to in EmbeddedInnobaseCursor::rnd_init(). Please let me know if you have some advice. Thanks, jay