Bug #48910 PGMAN stack bottom not HOT

Submitted: 19 Nov 2009 15:06 Modified: 11 Dec 2009 9:13
Reporter: Pekka Nousiainen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Disk Data Severity:S2 (Serious)
Version:mysql-5.1-telco-6.2 OS:Any
Assigned to: Pekka Nousiainen CPU Architecture:Any

[19 Nov 2009 15:06] Pekka Nousiainen
Description:
In PGMAN it is still possible to get asserts of type
ndbrequire(state & Page_entry::HOT);

This occurs in lirs_stack_pop(), drop_page(),
and verify_page_lists().  Only first one of these
is in non-debug version.

May be same as bug#45794 reported in 7.0.

How to repeat:
DiskPageBufferMemory: 4M (the minimum)
hugoLoad -r 100000 D1
hugoPkUpdate -r 100000 D1 &
sleep 10
ndb_drop_table D1
repeat for a few hours
[26 Nov 2009 19:22] 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/91831

3038 Pekka Nousiainen	2009-11-26
      bug#48910 01_pgman.diff
      Assert verify_page_entry() at end of each set_page_state().
      Add hot stack bottom assert to verify_page_entry().
      NOTE: The asserts are fixed in patches 02-06.
[26 Nov 2009 19:22] 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/91832

3039 Pekka Nousiainen	2009-11-26
      bug#48910 02_pgman.diff
      In process_callback() sync REQUEST state before set_page_state().
      Fixes assert "has_req == has_req2".
[26 Nov 2009 19:23] 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/91833

3040 Pekka Nousiainen	2009-11-26
      bug#48910 03_pgman.diff
      In get_page() move lirs_reference() to the end.
      Avoids calling set_page_state() when the state is not ready.
      Fixes assert "is_locked == ! is_lirs".
[26 Nov 2009 19:24] 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/91834

3041 Pekka Nousiainen	2009-11-26
      bug#48910 04_pgman.diff
      In drop_page() properly remove all states.
      Possible states should be HOT, BUSY, DIRTY, EMPTY, MAPPED, BOUND.
      Use (state == 0) to mean page entry is about to be released.
[26 Nov 2009 19:25] 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/91836

3042 Pekka Nousiainen	2009-11-26
      bug#48910 05_pgman.diff
      Maintain count of hot pages at each set_page_state().
      Reformat verify_page_lists().
[26 Nov 2009 19:26] 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/91837

3043 Pekka Nousiainen	2009-11-26
      bug#48910 06_pgman.diff
      Fix bug#48910 by using hot page count in lirs_reference().
      The bug could also deplete hot pages, making LIRS into LRU.
[26 Nov 2009 20:29] 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/91840

3169 Pekka Nousiainen	2009-11-26 [merge]
      bug#48910 - merge 6.2 to 6.3
[27 Nov 2009 9:23] 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/91876

3243 Pekka Nousiainen	2009-11-27 [merge]
      bug#48910 - merge 6.3 to 7.0
[27 Nov 2009 9:31] Bugs System
Pushed into 5.1.39-ndb-7.0.10 (revid:pekka@mysql.com-20091127092207-xw7g766wsa5ovno9) (version source revid:pekka@mysql.com-20091127092207-xw7g766wsa5ovno9) (merge vers: 5.1.39-ndb-7.0.10) (pib:13)
[27 Nov 2009 9:32] Bugs System
Pushed into 5.1.39-ndb-6.3.29 (revid:pekka@mysql.com-20091126202816-kxu1mt8sekdvcnrf) (version source revid:pekka@mysql.com-20091126202816-kxu1mt8sekdvcnrf) (merge vers: 5.1.39-ndb-6.3.29) (pib:13)
[27 Nov 2009 9:34] Bugs System
Pushed into 5.1.39-ndb-6.2.19 (revid:pekka@mysql.com-20091126192510-3ayn11khkeugirei) (version source revid:pekka@mysql.com-20091126192510-3ayn11khkeugirei) (merge vers: 5.1.39-ndb-6.2.19) (pib:13)
[27 Nov 2009 10:27] 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/91886

3244 Pekka Nousiainen	2009-11-27
      bug#48910 - no-debug compile fix
[27 Nov 2009 11:49] Bugs System
Pushed into 5.1.39-ndb-7.1.0 (revid:jonas@mysql.com-20091127114642-ldq7j7hikxtoz6l4) (version source revid:jonas@mysql.com-20091127114642-ldq7j7hikxtoz6l4) (merge vers: 5.1.39-ndb-7.1.0) (pib:13)
[1 Dec 2009 13: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/92273

3167 Martin Skold	2009-12-01 [merge]
      Merge
      modified:
        storage/ndb/src/common/debugger/EventLogger.cpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
        storage/ndb/src/kernel/blocks/ndbfs/AsyncIoThread.hpp
        storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp
        storage/ndb/src/kernel/blocks/pgman.cpp
        storage/ndb/src/kernel/blocks/pgman.hpp
        storage/ndb/src/mgmsrv/MgmtSrvr.cpp
        storage/ndb/src/ndbapi/NdbOperationDefine.cpp
        storage/ndb/src/ndbapi/NdbOperationSearch.cpp
        storage/ndb/test/ndbapi/testBlobs.cpp
        storage/ndb/test/run-test/daily-basic-tests.txt
        storage/ndb/test/run-test/daily-devel-tests.txt
[1 Dec 2009 13:33] 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/92279

3244 Martin Skold	2009-12-01 [merge]
      Merge
      modified:
        storage/ndb/src/common/debugger/EventLogger.cpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
        storage/ndb/src/kernel/blocks/ndbfs/AsyncIoThread.hpp
        storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp
        storage/ndb/src/kernel/blocks/pgman.cpp
        storage/ndb/src/kernel/blocks/pgman.hpp
        storage/ndb/src/mgmsrv/MgmtSrvr.cpp
        storage/ndb/src/ndbapi/NdbOperationDefine.cpp
        storage/ndb/src/ndbapi/NdbOperationSearch.cpp
        storage/ndb/test/ndbapi/testBlobs.cpp
        storage/ndb/test/run-test/daily-basic-tests.txt
        storage/ndb/test/run-test/daily-devel-tests.txt
[1 Dec 2009 14: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/92287

3170 Martin Skold	2009-12-01 [merge]
      Merge
      modified:
        storage/ndb/src/common/debugger/EventLogger.cpp
        storage/ndb/src/kernel/blocks/dblqh/DblqhMain.cpp
        storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp
        storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp
        storage/ndb/src/kernel/blocks/pgman.cpp
        storage/ndb/src/kernel/blocks/pgman.hpp
        storage/ndb/src/mgmsrv/MgmtSrvr.cpp
        storage/ndb/src/ndbapi/NdbOperationDefine.cpp
        storage/ndb/src/ndbapi/NdbOperationSearch.cpp
        storage/ndb/test/ndbapi/testBlobs.cpp
        storage/ndb/test/run-test/daily-basic-tests.txt
        storage/ndb/test/run-test/daily-devel-tests.txt
[1 Dec 2009 14:22] 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/92291

3040 Martin Skold	2009-12-01 [merge]
      Merge
      modified:
        storage/ndb/src/kernel/blocks/ndbfs/AsyncFile.hpp
        storage/ndb/src/kernel/blocks/ndbfs/MemoryChannel.hpp
        storage/ndb/src/kernel/blocks/pgman.cpp
        storage/ndb/src/kernel/blocks/pgman.hpp
        storage/ndb/src/ndbapi/NdbOperationDefine.cpp
        storage/ndb/src/ndbapi/NdbOperationSearch.cpp
        storage/ndb/test/ndbapi/testBlobs.cpp
        storage/ndb/test/run-test/daily-basic-tests.txt
[9 Dec 2009 12:08] Jon Stephens
How could a user encounter the problem that this fixes? I don't understand what was done here.

Thanks!
[9 Dec 2009 12:17] Pekka Nousiainen
It could happen if there are few disk tables and
they are repeatedly dropped and recreated.  It is
not necessary to have on-going ops when dropped.
[11 Dec 2009 9:13] Jon Stephens
Documented bugfix in the NDB-6.2.19, 6.3.29, and 7.0.10 changelogs, as follows:

        Repeatedly creating and then dropping Disk Data tables could
        eventually lead to data node failures.

Noted that this also fixes BUG#45794.

Closed.

Portions of this website are copyright © 2001, 2002 The PHP Group

Page generated in 0.085 sec. using MySQL 8.4.7-u6-cloud

Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the respective copyright holders.
It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.