Bug #52057 Crash at Lgman::get_log_buffer()
Submitted: 15 Mar 2010 8:41 Modified: 15 Mar 2010 15:03
Reporter: Mikiya Okuno Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Disk Data Severity:S2 (Serious)
Version:7.0.9 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[15 Mar 2010 8:41] Mikiya Okuno
Description:
In Lgman::get_log_buffer()...

============================================
  if(sz <= free)
  {
next:
    // fits this page wo/ problem
    ndbrequire(total_free > sz);
    ptr.p->m_free_buffer_words = total_free - sz;
    ptr.p->m_pos[PRODUCER].m_current_pos.m_idx = pos + sz;
    return ((File_formats::Undofile::Undo_page*)page)->m_data + pos;
  }
============================================

ndbrequire(total_free > sz) should be changed to ndbrequire(total_free >= sz).

How to repeat:
Create/alter DD tables using small UNDO_BUFFER_SIZE.

Suggested fix:
see above.
[15 Mar 2010 9:05] 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/103185

3090 Jonas Oreland	2010-03-15
      ndb - bug#52057 - fix incorrect assertion
[15 Mar 2010 9:37] Bugs System
Pushed into 5.1.44-ndb-6.2.19 (revid:jonas@mysql.com-20100315092341-znnjqu8f7mktwljs) (version source revid:jonas@mysql.com-20100315090405-zr8cdj71q3yrtjum) (merge vers: 5.1.44-ndb-6.2.19) (pib:16)
[15 Mar 2010 9:38] Bugs System
Pushed into 5.1.44-ndb-6.3.33 (revid:jonas@mysql.com-20100315093032-9858uf1xnujll2od) (version source revid:jonas@mysql.com-20100315092549-f3ievl193u2rvgx4) (merge vers: 5.1.44-ndb-6.3.33) (pib:16)
[15 Mar 2010 9:38] Bugs System
Pushed into 5.1.44-ndb-7.0.14 (revid:jonas@mysql.com-20100315093135-246r8dmv0qha3j51) (version source revid:jonas@mysql.com-20100315093135-246r8dmv0qha3j51) (merge vers: 5.1.44-ndb-7.0.14) (pib:16)
[15 Mar 2010 13:17] Jonas Oreland
pushed to 6.2.19, 6.3.33, 7.0.14 and 7.1.3
[15 Mar 2010 15:03] Jon Stephens
Documented bugfix in the NDB-6.2.19, 6.3.33, 7.0.14, and 7.1.3 changelogs, as follows:

        DDL operations on Disk Data tables having a relatively small
        UNDO_BUFFER_SIZE could fail unexpectedly.

Closed.