- 19 Jun, 2006 1 commit
-
-
aelkin@mysql.com authored
The bug was found in rpl_stm_000001 testing. In essence the following happens SLAVE thread receives what happens start init THD and its temp_table (tt0) stop storing tt0 pointer to rli->save... start restoring temp_tables - new pointer tt1 executing regular binlog event DROP temp_table at the end of which tt1-refered list must be empty (slave_open_temp_tables == 0) but the pointer refers to tt0 location! shutdown end_slave calls cleaning of temp_tables and crashes. The reason of the crash is that tt1 values is not zero upon DROPing the single temp table. This is due to alg of removing links from temp_tables list which "adapted" 5.0 code but w/o accounting that thd->temporary_tables in slave thread in prone to freeing. Upon freeing there is no more original '0' value available to denote empty list. temporary_tables must not refer to any "external" location, one of which thd->temporary_tables represents (since belong to THD instance). The fix done in sql_base.cc for two functions, look at there for details.
-
- 02 Jun, 2006 2 commits
-
-
mats@mysql.com authored
into mysql.com:/home/bkroot/mysql-5.1-new-rpl
-
mats@mysql.com authored
Comment change.
-
- 01 Jun, 2006 1 commit
-
-
aivanov@mysql.com authored
Fixed BUG#19542 "InnoDB doesn't increase the Handler_read_prev couter". Fixed BUG#19609 "Case sensitivity of innodb_data_file_path gives stupid error". Fixed BUG#19727 "InnoDB crashed server and crashed tables are ot recoverable". Also: * Remove remnants of the obsolete concept of memoryfixing tables and indexes. * Remove unused dict_table_LRU_trim(). * Remove unused 'trx' parameter from dict_table_get_on_id_low(), dict_table_get(), dict_table_get_and_increment_handle_count(). * Add a normal linked list implementation. * Add a work queue implementation. * Add 'level' parameter to mutex_create() and rw_lock_create(). Remove mutex_set_level() and rw_lock_set_level(). * Rename SYNC_LEVEL_NONE to SYNC_LEVEL_VARYING. * Add support for bound ids in InnoDB's parser. * Define UNIV_BTR_DEBUG for enabling consistency checks of FIL_PAGE_NEXT and FIL_PAGE_PREV when accessing sibling pages of B-tree indexes. btr_validate_level(): Check the validity of the doubly linked list formed by FIL_PAGE_NEXT and FIL_PAGE_PREV. * Adapt InnoDB to the new tablename to filename encoding in MySQL 5.1. ut_print_name(), ut_print_name1(): Add parameter 'table_id' for distinguishing names of tables from other identifiers. New: innobase_convert_from_table_id(), innobase_convert_from_id(), innobase_convert_from_filename(), innobase_get_charset. dict_accept(), dict_scan_id(), dict_scan_col(), dict_scan_table_name(), dict_skip_word(), dict_create_foreign_constraints_low(): Add parameter 'cs' so that isspace() can be replaced with my_isspace(), whose operation depends on the connection character set. dict_scan_id(): Convert identifier to UTF-8. dict_str_starts_with_keyword(): New extern function, to replace dict_accept() in row_search_for_mysql(). mysql_get_identifier_quote_char(): Replaced with innobase_print_identifier(). ha_innobase::create(): Remove the thd->convert_strin() call. Pass the statement to InnoDB in the connection character set and let InnoDB convert the identifier to UTF-8. * Add max_row_size to dict_table_t. * btr0cur.c btr_copy_externally_stored_field(): Only set the 'offset' variable when needed. * buf0buf.c buf_page_io_complete(): Write to the error log if the page number or the space id o the disk do not match those in memory. Also write to the error log if a page was read from the doublewrite buffer. The doublewrite buffer should be only read by the lower-level function fil_io() at database startup. * dict0dict.c dict_scan_table_name(): Remove fallback to differently encoded name when the table is not found. The encoding is handled at a higher level. * ha_innodb.cc Increment statistic counter in ha_innobase::index_prev() (bug 19542). Add innobase_convert_string wrapper function and a new file ha_prototypes.h. innobase_print_identifier(): Remove TODO comment before calling get_quote_char_for_identifier(). That function apparently assumes the identifier to be encoded in UTF-8. * ibuf0ibuf.c|h ibuf_count_get(), ibuf_counts[], ibuf_count_inited(): Define these only #ifdef UNIV_IBUF_DEBUG. Previously, when compiled without UNIV_IBUF_DEBUG, invoking ibuf_count_get() would crash InnoDB. The function is only being called #ifdef UNIV_IBUF_DEBUG. * innodb.result Adjust the results for changes in the foreign key error messages. * mem0mem.c|h New: mem_heap_dup(), mem_heap_printf(), mem_heap_cat(). * os0file.c Check the page trailers also after writing to disk. This improves chances of diagnosing bug 18886. os_file_check_page_trailers(): New function for checking that the two copies of the LSN stamped on the page match. os_aio_simulated_handle(): Call os_file_check_page_trailers() before and after os_file_write(). * row0mysql.c Move trx_commit_for_mysql(trx) calls before calls to row_mysql_unlock_data_dictionary(trx) (bug 19727). * row0sel.c row_fetch_print(): Handle SQL NULL values without crashing. row_sel_store_mysql_rec(): Remove useless call to rec_get_nth_field when handling an externally stored column. Fetch externally stored fields when using InnoDB's internal SQL parser. Optimize BLOB selects by using prebuilt->blob_heap directly instead of first reading BLOB data to a temporary heap and then copying it to prebuilt->blob_heap. * srv0srv.c srv_master_thread(): Remove unreachable code. * srv0start.c srv_parse_data_file_paths_and_sizes(): Accept lower-case 'm' and 'g' as abbreviations of megabyte and gigabyte (bug 19609). srv_parse_megabytes(): New fuction. * ut0dbg.c|h Implement InnoDB assertions (ut_a and ut_error) with abort() when the code is compiled with GCC 3 or later on other platforms than Windows or Netware. Also disable the variable ut_dbg_stop_threads and the function ut_dbg_stop_thread() i this case, unless UNIV_SYC_DEBUG is defined. This should allow the compiler to generate more compact code for assertions. * ut0list.c|h Add ib_list_create_heap().
-
- 31 May, 2006 1 commit
-
-
mats@mysql.com authored
Switched to writing out table maps for tables that are locked when the first row in a statement is seen.
-
- 17 May, 2006 5 commits
-
-
lars@mysql.com authored
-
lars@mysql.com authored
into mysql.com:/users/lthalmann/bk/mysql-5.1-new-rpl
-
gkodinov@mysql.com authored
into mysql.com:/home/kgeorge/mysql/5.1/merge
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
tomas@poseidon.ndb.mysql.com authored
-
- 16 May, 2006 22 commits
-
-
cmiller@zippy.(none) authored
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.1-new
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
-
tomas@poseidon.ndb.mysql.com authored
ndb: ndb_waiter disconnect/reconnect on get status error
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
tomas@poseidon.ndb.mysql.com authored
- adoptions to handle binlog
-
jmiller@mysql.com authored
into mysql.com:/home/ndbdev/jmiller/clones/mysql-5.1-new
-
jmiller@mysql.com authored
-
jmiller@mysql.com authored
Fix for failure in aix52 failure during push build
-
andrey@lmy004. authored
-
tulin@production.mysql.com authored
corrected merge
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
-
tomas@poseidon.ndb.mysql.com authored
- not having lock can cause "block number list" to become corrupt => crash - also may result in 2 threads receiving same block no => possble cause of Bug #13987 Cluster: Loss of data nodes can cause high CPU usage from ndb_mgmd
-
tomas@poseidon.ndb.mysql.com authored
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-4.1
-
mats@mysql.com authored
Added #ifdef's to make code work even when the system is built without row-based replication.
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.0
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
tnurnberg@mysql.com authored
into mysql.com:/home/mysql-5.1-18997e
-
tnurnberg@mysql.com authored
if input year for date_add() / date_sub() with INTERVAL is low enough for calc_daynr() to possibly return incorrect results (calc_daynr() has no information on whether the year is low because it was a two-digit year ('77) or because it was a really low four-digit year (0077) and will indiscriminately try to turn the value into a four-digit year by adding 1900 or 2000 respectively), the functions will now throw NULL.
-
- 15 May, 2006 8 commits
-
-
kent@mysql.com authored
into mysql.com:/data0/mysqldev/my/mysql-5.1-new
-
cmiller@zippy.(none) authored
into zippy.(none):/home/cmiller/work/mysql/merge/mysql-5.1-new
-
-
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new
-
tomas@poseidon.ndb.mysql.com authored
into poseidon.ndb.mysql.com:/home/tomas/mysql-5.1-new-ndb
-
into a193-229-222-105.elisa-laajakaista.fi:/home/my/bk/mysql-5.1-new-merge_060509
-
tomas@poseidon.ndb.mysql.com authored
-
tomas@poseidon.ndb.mysql.com authored
-