From: Date: August 21 2008 2:33pm Subject: bzr push into mysql-6.0-falcon branch (olav:2791 to 2792) Bug#38766 List-Archive: http://lists.mysql.com/commits/52205 X-Bug: 38766 Message-Id: <20080821123329.15412.qmail@khepri11> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 2792 Olav Sandstaa 2008-08-21 Fix for Bug#38766 Falcon hangs during start-up if compiled for 64 bit SPARC Wrong CompareAndChange routine was used for in interlockedAdd. Replaced routine for exchanging pointers with routine for exchanging integer values. This problem resultet in errors on big-endian 64 bit machines. modified: storage/falcon/Interlock.h 2791 Vladislav Vaintroub 2008-08-20 Improve error handling in MemMgr::corrupt(). Use FATAL macro instead of throwing BUG_CHECK. FATAL writes error text into MySQL error log, uncaught exception can't do that. modified: storage/falcon/MemMgr.cpp === modified file 'storage/falcon/Interlock.h' === modified file 'storage/falcon/Interlock.h' --- a/storage/falcon/Interlock.h 2008-07-10 09:27:51 +0000 +++ b/storage/falcon/Interlock.h 2008-08-21 11:23:44 +0000 @@ -396,7 +396,7 @@ { INTERLOCK_TYPE current= *addend; INTERLOCK_TYPE ret= current + value; - if (COMPARE_EXCHANGE_POINTER(addend, current, ret)) + if (COMPARE_EXCHANGE(addend, current, ret)) return ret; } #endif