| 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: | |
| Category: | MySQL Cluster: Disk Data | Severity: | S2 (Serious) |
| Version: | 7.0.9 | OS: | Any |
| Assigned to: | Jonas Oreland | CPU Architecture: | Any |
[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.

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.