Description:
When starting up ndbd cluster storage nodes with the SharedGlobalMemory parameter (in
config.ini on the ndb_mgmd server) set larger than 1012M, the following is logged in the
ndb_x_out.log:
----
2008-04-08 12:32:04 [ndbd] INFO -- Angel pid: 7337 ndb pid: 7338
2008-04-08 12:32:04 [ndbd] INFO -- NDB Cluster -- DB node 3
2008-04-08 12:32:04 [ndbd] INFO -- Version 5.1.23 (rc) --
2008-04-08 12:32:04 [ndbd] INFO -- Configuration fetched at localhost port 1186
2008-04-08 12:32:04 [ndbd] INFO -- Start initiated (version 5.1.23)
2008-04-08 12:32:04 [ndbd] INFO -- Ndbd_mem_manager::init(1) min: 1013Mb initial:
1013Mb
2008-04-08 12:32:04 [ndbd] INFO -- sbrk(1048576) failed, trying malloc
ndbd_malloc_impl.cpp:330:grow(5583481, 31) 5583481!=5505024 - Unable to use due to bitmap
pages missaligned!!
2008-04-08 12:32:04 [ndbd] ERROR -- ndbd_malloc_impl.cpp:333:grow(5583481, 31) -
Unable to use due to bitmap pages missaligned!!
WOPool::init(61, 9)
RWPool::init(82, 13)
RWPool::init(a2, 18)
RWPool::init(c2, 13)
RWPool::init(122, 18)
RWPool::init(142, 18)
WOPool::init(41, 12)
RWPool::init(e2, 12)
RWPool::init(102, 52)
WOPool::init(21, 10)
m_active_buckets.set(0)
----
- starting ndbd with the SharedGlobalMemory parameter set smaller than 1013M, the above
errors do not appear.
- apologies if the 'critical' severity allocated here is inappropriate, wasn't sure how
to categorize - I'm running a PoC mysql cluster and migrating a very large database from
Oracle RAC into it - not yet sure whether this will turn out to be a blocker issue for
this project.
How to repeat:
hardware: IBM System X x3950 server, 64Gb RAM, 4 x dual-core intel Xeon 3.16Ghz CPUs
OS: 64-bit Redhat Enterprise Linux 4 update 5 for x86_64, kernel version
2.6.9-55.0.6.ELsmp
SOFTWARE:installed the following RPMs from mysql.com:
MySQL-clusterextra-community-5.1.23-0.rhel4.x86_64.rpm
MySQL-clusterstorage-community-5.1.23-0.rhel4.x86_64.rpm
MySQL-clustermanagement-community-5.1.23-0.rhel4.x86_64.rpm
MySQL-clustertools-community-5.1.23-0.rhel4.x86_64.rpm
CONFIG: create minimal cluster management config.ini file with all settings default
except for large SharedGlobalMemory (any value over 1012M, eg. 1G), as follows:
----
[ndbd default]
NoOfReplicas= 1
DataDir= /var/lib/mysql-cluster
SharedGlobalMemory= 1013M
[ndb_mgmd default]
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Id=1
HostName= <hostname of server>
[ndbd]
Id= 3
HostName= <hostname of server>
[mysqld]
Id= 4
[tcp default]
----
- start up ndb_mgmd
- start up ndbd --initial
- note malloc error in ndb_x_out.log
- run ndb_mgm -e shutdown, edit config.ini to reduce SharedGlobalMemory to any value
below 1012M and repeat - error now does not occur.