Bug #51027 Initial restart yields 'Pointer too large' in dbacc
Submitted: 9 Feb 2010 15:20 Modified: 16 Feb 2010 8:39
Reporter: Geert Vanderkelen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:mysql-5.1.41-ndb-6.3.31 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[9 Feb 2010 15:20] Geert Vanderkelen
Description:
Initial restart yields 'Pointer too large' in dbacc

When restarting data node initial, it reports a 'Pointer too large'
error. Data merory was at 99%, but same problems happens at 43%
DM usage. Index memory is not full in both cases.

 Message: Pointer too large (Internal error, programming error or missing error message, please report a bug)
 Error: 2306
 Error data: dbacc/DbaccMain.cpp
 Error object: DBACC (Line: 8112) 0x0000000a
 Version: mysql-5.1.41 ndb-6.3.31-GA

The data node out log has 8 times following output before the
above error:
 tab: 5 frag: 2 replicaP->nextLcp: 0
 scanning idx: 1 lcpId: 0 crashed replicas: 1 NOT VALID
 scanning idx: 0 lcpId: 0 crashed replicas: 1 NOT VALID
 - scanning idx: 2 lcpId: 0

And then following before the angle exites:
 RedoPageCache: avoided 0 (0/0) page-reads
 RedoOpenFileCache: Avoided 0 file-open/close closed: 0
 alloc_chunk(573962 16) - 
 706/0 (705/4294967295) switchover complete bucket 0 state: 1starting
 alloc_chunk(576555 16) - 
 Free extent: [ m_page_no: 205 m_file_no: 39 m_page_idx: 1370]
 Free extent: [ m_page_no: 65 m_file_no: 39 m_page_idx: 1365]
 Free extent: [ m_page_no: 146 m_file_no: 39 m_page_idx: 1368]
 Free extent: [ m_page_no: 97 m_file_no: 39 m_page_idx: 1366]
 Free extent: [ m_page_no: 240 m_file_no: 39 m_page_idx: 1371]
 Free extent: [ m_page_no: 33 m_file_no: 39 m_page_idx: 1364]
 Free extent: [ m_page_no: 175 m_file_no: 39 m_page_idx: 1369]
 Free extent: [ m_page_no: 129 m_file_no: 39 m_page_idx: 1367]

It seems also not always to happen at the same table.

Originally reported with 6.3.31, a similar problem happens with
6.3.20, but with different error:

 Message: Pointer too large (Internal error, programming error or missing error message, please report a bug)
 Error: 2306
 Error data: dbdih/DbdihMain.cpp
 Error object: DBDIH (Line: 14765) 0x0000000a
 Version: mysql-5.1.30 ndb-6.3.20-GA

It looks similar to bug #48700, but 

How to repeat:
Not repeated (yet).
[15 Feb 2010 10:20] Jonas Oreland
Found problem: it's introduced in http://bugs.mysql.com/bug.php?id=47818
The problem occurs if IndexMemory (for whatever reason) becomes non-linear
(i.e contains holes), this typically happens if using "lots" of memory.

The strict definition of "lots" is a bit hard, cause it depends on many factors.

Problem exists in 6.3.31 and 7.0.11 and 7.0.12
[15 Feb 2010 11:55] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/100351

3096 Jonas Oreland	2010-02-15
      ndb - bug#51027 (6.3.31a) - handle non-continious memory for IndexMemory and RedoBuffer
[15 Feb 2010 12:49] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/100376

3384 Jonas Oreland	2010-02-15 [merge]
      ndb - merge bug#51027 into 7.0.11
[15 Feb 2010 13:37] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/100381

3386 Jonas Oreland	2010-02-15 [merge]
      ndb - merge bug#51027 into 7.0.12
[15 Feb 2010 14:20] Bugs System
Pushed into 5.1.41-ndb-7.0.13 (revid:jonas@mysql.com-20100215135340-f74zahfeafxgnvkw) (version source revid:jonas@mysql.com-20100215134651-yf6p34q67r0mbvlo) (merge vers: 5.1.41-ndb-7.0.13) (pib:16)
[15 Feb 2010 21:51] Jonas Oreland
released as 6.3.31a, 7.0.11a and 7.0.12a
[16 Feb 2010 8:39] Jon Stephens
Documented bugfix in the NDB-6.3.31a, 7.0.11a, 7.0.12a, and 7.1.2 changelogs, as follows:

        An initial restart of a data node configured with a large amount 
        of memory could fail with a -Pointer too large- error.

Closed.
[19 Feb 2010 11:02] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/100844

3095 Martin Skold	2010-02-19 [merge]
      Merge
      modified:
        storage/ndb/include/util/Parser.hpp
        storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp
        storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp
        storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
        storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
        storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
        storage/ndb/src/mgmsrv/MgmtSrvr.cpp
        storage/ndb/src/mgmsrv/MgmtSrvr.hpp
        storage/ndb/src/mgmsrv/Services.cpp
        storage/ndb/test/include/NdbRestarter.hpp
        storage/ndb/test/ndbapi/testMgm.cpp
        storage/ndb/test/ndbapi/testUpgrade.cpp
        storage/ndb/test/run-test/command.cpp
        storage/ndb/test/run-test/db.cpp
        storage/ndb/test/run-test/upgrade-tests.txt
        storage/ndb/test/src/CpcClient.cpp
        storage/ndb/test/src/NdbRestarter.cpp
[24 Feb 2010 14:31] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/101329

3407 Martin Skold	2010-02-24 [merge]
      Merge
      added:
        storage/ndb/cmake/
        storage/ndb/cmake/cmake_parse_arguments.cmake
        storage/ndb/cmake/libutils.cmake
      modified:
        .bzrignore
        mysql-test/suite/ndb/r/ndb_dd_alter.result
        mysql-test/suite/ndb/r/ndb_dd_restore_compat.result
        mysql-test/suite/ndb/t/show_attributes.inc
        storage/ndb/CMakeLists.txt
        storage/ndb/Makefile.am
        storage/ndb/config/type_ndbapitools.cmake
        storage/ndb/include/kernel/GlobalSignalNumbers.h
        storage/ndb/include/util/Parser.hpp
        storage/ndb/src/CMakeLists.txt
        storage/ndb/src/kernel/blocks/CMakeLists.txt
        storage/ndb/src/kernel/blocks/dbacc/Dbacc.hpp
        storage/ndb/src/kernel/blocks/dbacc/DbaccInit.cpp
        storage/ndb/src/kernel/blocks/dbacc/DbaccMain.cpp
        storage/ndb/src/kernel/blocks/dblqh/Dblqh.hpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhInit.cpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
        storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp
        storage/ndb/src/kernel/blocks/dbtup/DbtupGen.cpp
        storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp
        storage/ndb/src/kernel/blocks/suma/Suma.cpp
        storage/ndb/src/kernel/blocks/suma/Suma.hpp
        storage/ndb/src/kernel/blocks/suma/SumaInit.cpp
        storage/ndb/src/kernel/vm/ArrayPool.hpp
        storage/ndb/src/kernel/vm/ndbd_malloc_impl.cpp
        storage/ndb/src/mgmsrv/CMakeLists.txt
        storage/ndb/src/mgmsrv/MgmtSrvr.cpp
        storage/ndb/src/mgmsrv/MgmtSrvr.hpp
        storage/ndb/src/mgmsrv/Services.cpp
        storage/ndb/src/ndbapi/NdbDictionary.cpp
        storage/ndb/test/include/HugoTransactions.hpp
        storage/ndb/test/include/NdbRestarter.hpp
        storage/ndb/test/ndbapi/testMgm.cpp
        storage/ndb/test/ndbapi/testUpgrade.cpp
        storage/ndb/test/run-test/command.cpp
        storage/ndb/test/run-test/db.cpp
        storage/ndb/test/run-test/upgrade-tests.txt
        storage/ndb/test/src/CpcClient.cpp
        storage/ndb/test/src/HugoTransactions.cpp
        storage/ndb/test/src/NdbRestarter.cpp
        storage/ndb/tools/CMakeLists.txt
        storage/ndb/tools/desc.cpp