3691 Marko Mäkelä 2011-01-25
Bug#59486 Incorrect usage of UNIV_UNLIKELY() in mlog_parse_string()
mlog_parse_string(): Enclose the comparison in UNIV_UNLIKELY,
not the comparand.
modified:
storage/innodb_plugin/ChangeLog
storage/innodb_plugin/mtr/mtr0log.c
3690 Marko Mäkelä 2011-01-25
Bug#59464 Race condition in row_vers_build_for_semi_consistent_read
row_vers_build_for_semi_consistent_read(): Dereference version_trx before
releasing kernel_mutex, but not thereafter.
modified:
storage/innobase/row/row0vers.c
storage/innodb_plugin/ChangeLog
storage/innodb_plugin/row/row0vers.c
3689 Marko Mäkelä 2011-01-25
Bug#59707 Unused compression-related parameters in buffer pool functions
buf_block_alloc(): ulint zip_size is always 0.
buf_LRU_get_free_block(): ulint zip_size is always 0.
buf_LRU_free_block(): ibool* buf_pool_mutex_released is always NULL.
Remove these parameters.
buf_LRU_get_free_block(): Simplify the initialization of block->page.zip
and release buf_pool_mutex() earlier.
modified:
storage/innodb_plugin/ChangeLog
storage/innodb_plugin/btr/btr0btr.c
storage/innodb_plugin/btr/btr0cur.c
storage/innodb_plugin/btr/btr0sea.c
storage/innodb_plugin/buf/buf0buddy.c
storage/innodb_plugin/buf/buf0buf.c
storage/innodb_plugin/buf/buf0lru.c
storage/innodb_plugin/include/buf0buf.h
storage/innodb_plugin/include/buf0buf.ic
storage/innodb_plugin/include/buf0lru.h
storage/innodb_plugin/mem/mem0mem.c
storage/innodb_plugin/page/page0zip.c
3688 Vasil Dimov 2011-01-24 [merge]
Merge mysql-5.1 -> mysql-5.1-innodb
added:
mysql-test/include/restart_slave_sql.inc
mysql-test/include/rpl_connection_master.inc
mysql-test/include/rpl_connection_slave.inc
mysql-test/include/rpl_connection_slave1.inc
modified:
client/mysqladmin.cc
client/mysqldump.c
client/mysqlslap.c
client/mysqltest.cc
configure.in
include/my_pthread.h
include/my_sys.h
mysql-test/Makefile.am
mysql-test/collections/README.experimental
mysql-test/collections/default.experimental
mysql-test/lib/My/ConfigFactory.pm
mysql-test/lib/My/CoreDump.pm
mysql-test/lib/My/File/Path.pm
mysql-test/lib/My/Find.pm
mysql-test/lib/My/Options.pm
mysql-test/lib/My/Platform.pm
mysql-test/lib/My/SafeProcess.pm
mysql-test/lib/My/SafeProcess/Base.pm
mysql-test/lib/My/SafeProcess/CMakeLists.txt
mysql-test/lib/My/SafeProcess/Makefile.am
mysql-test/lib/My/SafeProcess/safe_kill_win.cc
mysql-test/lib/My/SafeProcess/safe_process.cc
mysql-test/lib/My/SafeProcess/safe_process_win.cc
mysql-test/lib/My/SysInfo.pm
mysql-test/lib/My/Test.pm
mysql-test/lib/mtr_gcov.pl
mysql-test/lib/mtr_gprof.pl
mysql-test/lib/mtr_io.pl
mysql-test/lib/mtr_match.pm
mysql-test/lib/mtr_misc.pl
mysql-test/lib/mtr_report.pm
mysql-test/lib/mtr_stress.pl
mysql-test/lib/mtr_unique.pm
mysql-test/mysql-stress-test.pl
mysql-test/mysql-test-run.pl
mysql-test/r/client_xml.result
mysql-test/r/ctype_many.result
mysql-test/r/func_like.result
mysql-test/r/func_str.result
mysql-test/r/gis.result
mysql-test/r/mysqladmin.result
mysql-test/r/mysqlbinlog_row_big.result
mysql-test/r/mysqldump.result
mysql-test/r/mysqltest.result
mysql-test/r/partition.result
mysql-test/r/partition_error.result
mysql-test/r/subselect4.result
mysql-test/r/type_datetime.result
mysql-test/r/view_grant.result
mysql-test/r/xml.result
mysql-test/suite/parts/inc/part_supported_sql_funcs_main.inc
mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
mysql-test/suite/rpl/r/rpl_stop_slave.result
mysql-test/suite/rpl/t/rpl_packet.test
mysql-test/suite/rpl/t/rpl_stop_slave.test
mysql-test/suite/sys_vars/r/innodb_max_dirty_pages_pct_func.result
mysql-test/suite/sys_vars/t/innodb_max_dirty_pages_pct_func.test
mysql-test/t/ctype_many.test
mysql-test/t/func_like.test
mysql-test/t/func_str.test
mysql-test/t/gis.test
mysql-test/t/mysqladmin.test
mysql-test/t/mysqlbinlog_row_big.test
mysql-test/t/mysqldump.test
mysql-test/t/mysqltest.test
mysql-test/t/partition.test
mysql-test/t/partition_error.test
mysql-test/t/subselect4.test
mysql-test/t/type_datetime.test
mysql-test/t/view_grant.test
mysql-test/t/xml.test
mysql-test/valgrind.supp
mysys/my_fopen.c
mysys/my_getsystime.c
sql/handler.cc
sql/item.h
sql/item_cmpfunc.cc
sql/item_func.h
sql/item_geofunc.h
sql/item_strfunc.cc
sql/item_strfunc.h
sql/item_sum.h
sql/item_timefunc.h
sql/log.cc
sql/net_serv.cc
sql/slave.cc
sql/sql_base.cc
sql/sql_partition.cc
sql/sql_repl.cc
sql/sql_select.cc
sql/sql_string.cc
sql/sql_string.h
sql/sql_view.cc
sql/table.cc
strings/bchange.c
strings/bcopy-duff.c
strings/bfill.c
strings/bmove.c
strings/bmove512.c
strings/bmove_upp.c
strings/conf_to_src.c
strings/ctype-big5.c
strings/ctype-bin.c
strings/ctype-cp932.c
strings/ctype-czech.c
strings/ctype-euc_kr.c
strings/ctype-eucjpms.c
strings/ctype-extra.c
strings/ctype-gb2312.c
strings/ctype-gbk.c
strings/ctype-latin1.c
strings/ctype-mb.c
strings/ctype-simple.c
strings/ctype-sjis.c
strings/ctype-tis620.c
strings/ctype-uca.c
strings/ctype-ucs2.c
strings/ctype-ujis.c
strings/ctype-utf8.c
strings/ctype-win1250ch.c
strings/ctype.c
strings/decimal.c
strings/do_ctype.c
strings/dump_map.c
strings/int2str.c
strings/is_prefix.c
strings/llstr.c
strings/longlong2str.c
strings/longlong2str_asm.c
strings/memcmp.c
strings/memcpy.c
strings/memset.c
strings/my_strchr.c
strings/my_strtoll10.c
strings/my_vsnprintf.c
strings/r_strinstr.c
strings/str2int.c
strings/str_alloc.c
strings/str_test.c
strings/strappend.c
strings/strcat.c
strings/strcend.c
strings/strchr.c
strings/strcmp.c
strings/strcont.c
strings/strend.c
strings/strfill.c
strings/strinstr.c
strings/strlen.c
strings/strmake.c
strings/strmov.c
strings/strnlen.c
strings/strnmov.c
strings/strrchr.c
strings/strstr.c
strings/strto.c
strings/strtod.c
strings/strtol.c
strings/strtoll.c
strings/strtoul.c
strings/strtoull.c
strings/strxmov.c
strings/strxnmov.c
strings/uca-dump.c
strings/uctypedump.c
strings/udiv.c
strings/utr11-dump.c
strings/xml.c
=== modified file 'storage/innobase/row/row0vers.c'
--- a/storage/innobase/row/row0vers.c revid:vasil.dimov@stripped
+++ b/storage/innobase/row/row0vers.c revid:marko.makela@oracle.com-20110125101728-5m22qrw5558pimj0
@@ -593,11 +593,15 @@ row_vers_build_for_semi_consistent_read(
mutex_enter(&kernel_mutex);
version_trx = trx_get_on_id(version_trx_id);
+ if (version_trx
+ && (version_trx->conc_state == TRX_COMMITTED_IN_MEMORY
+ || version_trx->conc_state == TRX_NOT_STARTED)) {
+
+ version_trx = NULL;
+ }
mutex_exit(&kernel_mutex);
- if (!version_trx
- || version_trx->conc_state == TRX_NOT_STARTED
- || version_trx->conc_state == TRX_COMMITTED_IN_MEMORY) {
+ if (!version_trx) {
/* We found a version that belongs to a
committed transaction: return it. */
=== modified file 'storage/innodb_plugin/ChangeLog'
--- a/storage/innodb_plugin/ChangeLog revid:vasil.dimov@oracle.com-20110124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/ChangeLog revid:marko.makela@stripped0125101728-5m22qrw5558pimj0
@@ -1,3 +1,22 @@
+2011-01-25 The InnoDB Team
+
+ * mtr/mtr0log.c:
+ Bug#59486 Incorrect usage of UNIV_UNLIKELY() in mlog_parse_string()
+
+2011-01-25 The InnoDB Team
+
+ * row/row0vers.c:
+ Fix Bug#59464 Race condition in row_vers_build_for_semi_consistent_read
+
+2011-01-25 The InnoDB Team
+
+ * btr/btr0btr.c, btr/btr0cur.c, btr/btr0sea.c,
+ buf/buf0buddy.c, buf/buf0buf.c, buf/buf0lru.c,
+ include/buf0buf.h, include/buf0buf.ic, include/buf0lru.h,
+ mem/mem0mem.c, page/page0zip.c:
+ Fix Bug#59707 Unused compression-related parameters
+ in buffer pool functions
+
2011-01-18 The InnoDB Team
* include/sync0rw.h, sync/sync0arr.c, sync/sync0rw.c:
=== modified file 'storage/innodb_plugin/btr/btr0btr.c'
--- a/storage/innodb_plugin/btr/btr0btr.c revid:vasil.dimov@stripped
+++ b/storage/innodb_plugin/btr/btr0btr.c revid:marko.makela@strippedom-20110125101728-5m22qrw5558pimj0
@@ -979,7 +979,7 @@ btr_page_reorganize_low(
log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE);
#ifndef UNIV_HOTBACKUP
- temp_block = buf_block_alloc(0);
+ temp_block = buf_block_alloc();
#else /* !UNIV_HOTBACKUP */
ut_ad(block == back_block1);
temp_block = back_block2;
=== modified file 'storage/innodb_plugin/btr/btr0cur.c'
--- a/storage/innodb_plugin/btr/btr0cur.c revid:vasil.dimov@stripped4iplz5cggkleefvi
+++ b/storage/innodb_plugin/btr/btr0cur.c revid:marko.makela@stripped8pimj0
@@ -3767,13 +3767,12 @@ btr_blob_free(
&& buf_block_get_space(block) == space
&& buf_block_get_page_no(block) == page_no) {
- if (buf_LRU_free_block(&block->page, all, NULL)
- != BUF_LRU_FREED
+ if (buf_LRU_free_block(&block->page, all) != BUF_LRU_FREED
&& all && block->page.zip.data) {
/* Attempt to deallocate the uncompressed page
if the whole block cannot be deallocted. */
- buf_LRU_free_block(&block->page, FALSE, NULL);
+ buf_LRU_free_block(&block->page, FALSE);
}
}
=== modified file 'storage/innodb_plugin/btr/btr0sea.c'
--- a/storage/innodb_plugin/btr/btr0sea.c revid:vasil.dimov@strippedleefvi
+++ b/storage/innodb_plugin/btr/btr0sea.c revid:marko.makela@stripped
@@ -141,7 +141,7 @@ btr_search_check_free_space_in_heap(void
be enough free space in the hash table. */
if (heap->free_block == NULL) {
- buf_block_t* block = buf_block_alloc(0);
+ buf_block_t* block = buf_block_alloc();
rw_lock_x_lock(&btr_search_latch);
=== modified file 'storage/innodb_plugin/buf/buf0buddy.c'
--- a/storage/innodb_plugin/buf/buf0buddy.c revid:vasil.dimov@stripped-20110124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/buf/buf0buddy.c revid:marko.makela@stripped5101728-5m22qrw5558pimj0
@@ -327,7 +327,7 @@ buf_buddy_alloc_low(
/* Try replacing an uncompressed page in the buffer pool. */
buf_pool_mutex_exit();
- block = buf_LRU_get_free_block(0);
+ block = buf_LRU_get_free_block();
*lru = TRUE;
buf_pool_mutex_enter();
=== modified file 'storage/innodb_plugin/buf/buf0buf.c'
--- a/storage/innodb_plugin/buf/buf0buf.c revid:vasil.dimov@stripped-20110124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/buf/buf0buf.c revid:marko.makela@stripped01728-5m22qrw5558pimj0
@@ -1283,7 +1283,7 @@ shrink_again:
buf_LRU_make_block_old(&block->page);
dirty++;
- } else if (buf_LRU_free_block(&block->page, TRUE, NULL)
+ } else if (buf_LRU_free_block(&block->page, TRUE)
!= BUF_LRU_FREED) {
nonfree++;
}
@@ -1729,8 +1729,7 @@ err_exit:
mutex_enter(block_mutex);
/* Discard the uncompressed page frame if possible. */
- if (buf_LRU_free_block(bpage, FALSE, NULL)
- == BUF_LRU_FREED) {
+ if (buf_LRU_free_block(bpage, FALSE) == BUF_LRU_FREED) {
mutex_exit(block_mutex);
goto lookup;
@@ -2165,7 +2164,7 @@ wait_until_unfixed:
buf_pool_mutex_exit();
mutex_exit(&buf_pool_zip_mutex);
- block = buf_LRU_get_free_block(0);
+ block = buf_LRU_get_free_block();
ut_a(block);
buf_pool_mutex_enter();
@@ -2291,8 +2290,7 @@ wait_until_unfixed:
/* Try to evict the block from the buffer pool, to use the
insert buffer as much as possible. */
- if (buf_LRU_free_block(&block->page, TRUE, NULL)
- == BUF_LRU_FREED) {
+ if (buf_LRU_free_block(&block->page, TRUE) == BUF_LRU_FREED) {
buf_pool_mutex_exit();
mutex_exit(&block->mutex);
fprintf(stderr,
@@ -2829,7 +2827,7 @@ buf_page_init_for_read(
&& UNIV_LIKELY(!recv_recovery_is_on())) {
block = NULL;
} else {
- block = buf_LRU_get_free_block(0);
+ block = buf_LRU_get_free_block();
ut_ad(block);
}
@@ -3001,7 +2999,7 @@ buf_page_create(
ut_ad(mtr->state == MTR_ACTIVE);
ut_ad(space || !zip_size);
- free_block = buf_LRU_get_free_block(0);
+ free_block = buf_LRU_get_free_block();
buf_pool_mutex_enter();
=== modified file 'storage/innodb_plugin/buf/buf0lru.c'
--- a/storage/innodb_plugin/buf/buf0lru.c revid:vasil.dimov@strippedcggkleefvi
+++ b/storage/innodb_plugin/buf/buf0lru.c revid:marko.makela@stripped
@@ -575,7 +575,7 @@ buf_LRU_free_from_unzip_LRU_list(
ut_ad(block->page.in_LRU_list);
mutex_enter(&block->mutex);
- freed = buf_LRU_free_block(&block->page, FALSE, NULL);
+ freed = buf_LRU_free_block(&block->page, FALSE);
mutex_exit(&block->mutex);
switch (freed) {
@@ -636,7 +636,7 @@ buf_LRU_free_from_common_LRU_list(
mutex_enter(block_mutex);
accessed = buf_page_is_accessed(bpage);
- freed = buf_LRU_free_block(bpage, TRUE, NULL);
+ freed = buf_LRU_free_block(bpage, TRUE);
mutex_exit(block_mutex);
switch (freed) {
@@ -798,10 +798,8 @@ LRU list to the free list.
@return the free control block, in state BUF_BLOCK_READY_FOR_USE */
UNIV_INTERN
buf_block_t*
-buf_LRU_get_free_block(
-/*===================*/
- ulint zip_size) /*!< in: compressed page size in bytes,
- or 0 if uncompressed tablespace */
+buf_LRU_get_free_block(void)
+/*========================*/
{
buf_block_t* block = NULL;
ibool freed;
@@ -877,26 +875,10 @@ loop:
/* If there is a block in the free list, take it */
block = buf_LRU_get_free_only();
- if (block) {
-
-#ifdef UNIV_DEBUG
- block->page.zip.m_start =
-#endif /* UNIV_DEBUG */
- block->page.zip.m_end =
- block->page.zip.m_nonempty =
- block->page.zip.n_blobs = 0;
-
- if (UNIV_UNLIKELY(zip_size)) {
- ibool lru;
- page_zip_set_size(&block->page.zip, zip_size);
- block->page.zip.data = buf_buddy_alloc(zip_size, &lru);
- UNIV_MEM_DESC(block->page.zip.data, zip_size, block);
- } else {
- page_zip_set_size(&block->page.zip, 0);
- block->page.zip.data = NULL;
- }
+ buf_pool_mutex_exit();
- buf_pool_mutex_exit();
+ if (block) {
+ memset(&block->page.zip, 0, sizeof block->page.zip);
if (started_monitor) {
srv_print_innodb_monitor = mon_value_was;
@@ -908,8 +890,6 @@ loop:
/* If no block was in the free list, search from the end of the LRU
list and try to free a block there */
- buf_pool_mutex_exit();
-
freed = buf_LRU_search_and_free_block(n_iterations);
if (freed > 0) {
@@ -1378,12 +1358,8 @@ enum buf_lru_free_block_status
buf_LRU_free_block(
/*===============*/
buf_page_t* bpage, /*!< in: block to be freed */
- ibool zip, /*!< in: TRUE if should remove also the
+ ibool zip) /*!< in: TRUE if should remove also the
compressed page of an uncompressed page */
- ibool* buf_pool_mutex_released)
- /*!< in: pointer to a variable that will
- be assigned TRUE if buf_pool_mutex
- was temporarily released, or NULL */
{
buf_page_t* b = NULL;
mutex_t* block_mutex = buf_page_get_mutex(bpage);
@@ -1554,10 +1530,6 @@ alloc:
b->io_fix = BUF_IO_READ;
}
- if (buf_pool_mutex_released) {
- *buf_pool_mutex_released = TRUE;
- }
-
buf_pool_mutex_exit();
mutex_exit(block_mutex);
=== modified file 'storage/innodb_plugin/include/buf0buf.h'
--- a/storage/innodb_plugin/include/buf0buf.h revid:vasil.dimov@stripped037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/include/buf0buf.h revid:marko.makela@stripped22qrw5558pimj0
@@ -165,10 +165,8 @@ Allocates a buffer block.
@return own: the allocated block, in state BUF_BLOCK_MEMORY */
UNIV_INLINE
buf_block_t*
-buf_block_alloc(
-/*============*/
- ulint zip_size); /*!< in: compressed page size in bytes,
- or 0 if uncompressed tablespace */
+buf_block_alloc(void);
+/*=================*/
/********************************************************************//**
Frees a buffer block which does not contain a file page. */
UNIV_INLINE
=== modified file 'storage/innodb_plugin/include/buf0buf.ic'
--- a/storage/innodb_plugin/include/buf0buf.ic revid:vasil.dimov@stripped124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/include/buf0buf.ic revid:marko.makela@stripped1728-5m22qrw5558pimj0
@@ -719,14 +719,12 @@ Allocates a buffer block.
@return own: the allocated block, in state BUF_BLOCK_MEMORY */
UNIV_INLINE
buf_block_t*
-buf_block_alloc(
-/*============*/
- ulint zip_size) /*!< in: compressed page size in bytes,
- or 0 if uncompressed tablespace */
+buf_block_alloc(void)
+/*=================*/
{
buf_block_t* block;
- block = buf_LRU_get_free_block(zip_size);
+ block = buf_LRU_get_free_block();
buf_block_set_state(block, BUF_BLOCK_MEMORY);
=== modified file 'storage/innodb_plugin/include/buf0lru.h'
--- a/storage/innodb_plugin/include/buf0lru.h revid:vasil.dimov@oracle.com-20110124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/include/buf0lru.h revid:marko.makela@strippedom-20110125101728-5m22qrw5558pimj0
@@ -110,12 +110,9 @@ enum buf_lru_free_block_status
buf_LRU_free_block(
/*===============*/
buf_page_t* bpage, /*!< in: block to be freed */
- ibool zip, /*!< in: TRUE if should remove also the
+ ibool zip) /*!< in: TRUE if should remove also the
compressed page of an uncompressed page */
- ibool* buf_pool_mutex_released);
- /*!< in: pointer to a variable that will
- be assigned TRUE if buf_pool_mutex
- was temporarily released, or NULL */
+ __attribute__((nonnull));
/******************************************************************//**
Try to free a replaceable block.
@return TRUE if found and freed */
@@ -146,10 +143,9 @@ LRU list to the free list.
@return the free control block, in state BUF_BLOCK_READY_FOR_USE */
UNIV_INTERN
buf_block_t*
-buf_LRU_get_free_block(
-/*===================*/
- ulint zip_size); /*!< in: compressed page size in bytes,
- or 0 if uncompressed tablespace */
+buf_LRU_get_free_block(void)
+/*========================*/
+ __attribute__((warn_unused_result));
/******************************************************************//**
Puts a block back to the free list. */
=== modified file 'storage/innodb_plugin/mem/mem0mem.c'
--- a/storage/innodb_plugin/mem/mem0mem.c revid:vasil.dimov@stripped124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/mem/mem0mem.c revid:marko.makela@stripped5m22qrw5558pimj0
@@ -347,7 +347,7 @@ mem_heap_create_block(
return(NULL);
}
} else {
- buf_block = buf_block_alloc(0);
+ buf_block = buf_block_alloc();
}
block = (mem_block_t*) buf_block->frame;
=== modified file 'storage/innodb_plugin/mtr/mtr0log.c'
--- a/storage/innodb_plugin/mtr/mtr0log.c revid:vasil.dimov@oracle.com-20110124074037-4iplz5cggkleefvi
+++ b/storage/innodb_plugin/mtr/mtr0log.c revid:marko.makela@stripped125101728-5m22qrw5558pimj0
@@ -408,7 +408,7 @@ mlog_parse_string(
ptr += 2;
if (UNIV_UNLIKELY(offset >= UNIV_PAGE_SIZE)
- || UNIV_UNLIKELY(len + offset) > UNIV_PAGE_SIZE) {
+ || UNIV_UNLIKELY(len + offset > UNIV_PAGE_SIZE)) {
recv_sys->found_corrupt_log = TRUE;
return(NULL);
=== modified file 'storage/innodb_plugin/page/page0zip.c'
--- a/storage/innodb_plugin/page/page0zip.c revid:vasil.dimov@strippedfvi
+++ b/storage/innodb_plugin/page/page0zip.c revid:marko.makela@stripped
@@ -4439,7 +4439,7 @@ page_zip_reorganize(
log_mode = mtr_set_log_mode(mtr, MTR_LOG_NONE);
#ifndef UNIV_HOTBACKUP
- temp_block = buf_block_alloc(0);
+ temp_block = buf_block_alloc();
btr_search_drop_page_hash_index(block);
block->check_index_page_at_flush = TRUE;
#else /* !UNIV_HOTBACKUP */
=== modified file 'storage/innodb_plugin/row/row0vers.c'
--- a/storage/innodb_plugin/row/row0vers.c revid:vasil.dimov@strippedfvi
+++ b/storage/innodb_plugin/row/row0vers.c revid:marko.makela@stripped
@@ -669,11 +669,15 @@ row_vers_build_for_semi_consistent_read(
mutex_enter(&kernel_mutex);
version_trx = trx_get_on_id(version_trx_id);
+ if (version_trx
+ && (version_trx->conc_state == TRX_COMMITTED_IN_MEMORY
+ || version_trx->conc_state == TRX_NOT_STARTED)) {
+
+ version_trx = NULL;
+ }
mutex_exit(&kernel_mutex);
- if (!version_trx
- || version_trx->conc_state == TRX_NOT_STARTED
- || version_trx->conc_state == TRX_COMMITTED_IN_MEMORY) {
+ if (!version_trx) {
/* We found a version that belongs to a
committed transaction: return it. */
Attachment: [text/bzr-bundle] bzr/marko.makela@oracle.com-20110125101728-5m22qrw5558pimj0.bundle
| Thread |
|---|
| • bzr push into mysql-5.1-innodb branch (marko.makela:3688 to 3691) Bug#59486 | marko.makela | 25 Jan |