From: vasil.dimov Date: February 10 2011 3:25pm Subject: bzr commit into mysql-5.1-innodb branch (vasil.dimov:3706) Bug#59307 List-Archive: http://lists.mysql.com/commits/131053 X-Bug: 59307 Message-Id: <20110210152520.C7E8F2E0AA@mail.v5d.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5325837706660910049==" --===============5325837706660910049== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///usr/local/devel/bzrroot/server/mysql-5.1-innodb/ based on revid:vasil.dimov@stripped 3706 Vasil Dimov 2011-02-10 Fix Bug#59307 Valgrind: uninitialized value in rw_lock_set_writer_id_and_recursion_flag() by silencing a bogus Valgrind warning: ==4392== Conditional jump or move depends on uninitialised value(s) ==4392== at 0x5A18416: rw_lock_set_writer_id_and_recursion_flag (sync0rw.ic:283) ==4392== by 0x5A1865C: rw_lock_x_lock_low (sync0rw.c:558) ==4392== by 0x5A18481: rw_lock_x_lock_func (sync0rw.c:617) ==4392== by 0x597EEE6: mtr_x_lock_func (mtr0mtr.ic:271) ==4392== by 0x597EBBD: fsp_header_init (fsp0fsp.c:970) ==4392== by 0x5A15E78: innobase_start_or_create_for_mysql (srv0start.c:1508) ==4392== by 0x598B789: innobase_init(void*) (ha_innodb.cc:2282) os_compare_and_swap_thread_id() is defined as __sync_bool_compare_and_swap(). From the GCC doc: `bool __sync_bool_compare_and_swap (TYPE *ptr, TYPE oldval TYPE newval, ...)' ... The "bool" version returns true if the comparison is successful and NEWVAL was written. So it is not possible that the return value is uninitialized, no matter what the arguments to os_compare_and_swap_thread_id() are. Probably Valgrind gets confused by the implementation of the GCC internal function __sync_bool_compare_and_swap(). modified: storage/innodb_plugin/include/sync0rw.ic === modified file 'storage/innodb_plugin/include/sync0rw.ic' --- a/storage/innodb_plugin/include/sync0rw.ic revid:vasil.dimov@stripped +++ b/storage/innodb_plugin/include/sync0rw.ic revid:vasil.dimov@stripped @@ -280,6 +280,7 @@ rw_lock_set_writer_id_and_recursion_flag local_thread = lock->writer_thread; success = os_compare_and_swap_thread_id( &lock->writer_thread, local_thread, curr_thread); + UNIV_MEM_VALID(&success, sizeof(success)); ut_a(success); lock->recursive = recursive; --===============5325837706660910049== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/vasil.dimov@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: vasil.dimov@stripped # target_branch: file:///usr/local/devel/bzrroot/server/mysql-5.1-\ # innodb/ # testament_sha1: d777c0e95bb5bf755bbdf9a30dff06c849df6143 # timestamp: 2011-02-10 17:25:20 +0200 # source_branch: bzr+ssh://bk/bzrroot/server/mysql-5.1-innodb/ # base_revision_id: vasil.dimov@stripped\ # ozy6kwp8wriuvys8 # # Begin bundle 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 Wlwx0KpB0rcbqkS02r/i7kinChIY1WfJ4A== --===============5325837706660910049==--