#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;
| Thread |
|---|
| • commit into mysql-6.0-falcon:mysql-6.0-falcon branch (olav:2694) Bug#36745 | Olav Sandstaa | 8 Jun |