From: Date: June 8 2008 8:52am Subject: commit into mysql-6.0-falcon:mysql-6.0-falcon branch (olav:2694) Bug#36745 List-Archive: http://lists.mysql.com/commits/47579 X-Bug: 36745 Message-Id: <20080608065259.28837.qmail@khepri11> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit #At bzr+ssh://bk-internal.mysql.com/bzrroot/server/mysql-6.0-falcon/ 2694 Olav Sandstaa 2008-06-08 Fix to the second of the memory alignment issues in Bug#36745 falcon crash on solaris The problem that caused crashes on SPARC running in 64 bit mode was due a memory aligment issue when "nodes" were allocated in the DeferredIndex::initialSpace. Memory is allocated in the initialSpace starting from the end of the memory area. Since the end of the initialSpace was not aligned on an address boundary this resulted in that memory allocated from it was not aligned and thus crashed on Solaris when running in 64 bit mot on SPARC. Fixed this by ensuring that the size of the initialSpace is "8 byte memory aligned" (increased the size of it from 500 bytes to 512 bytes). modified: storage/falcon/DeferredIndex.h per-file comments: storage/falcon/DeferredIndex.h Increased the size of initialSpace from 500 to 512 bytes to ensure that objects allocated from it gets an address that is memory aligned also on 64 bit platforms. === modified file 'storage/falcon/DeferredIndex.h' --- a/storage/falcon/DeferredIndex.h 2008-03-11 16:15:47 +0000 +++ b/storage/falcon/DeferredIndex.h 2008-06-08 06:52:51 +0000 @@ -111,7 +111,7 @@ DIHunk *hunks; DINode *minValue; DINode *maxValue; - UCHAR initialSpace[500]; + UCHAR initialSpace[512]; UCHAR *base; void *root; uint currentHunkOffset;