Bug #53580 abort() in multi-threaded index rebuild on node restart
| Submitted: | 11 May 2010 17:40 | Modified: | 25 May 2010 9:45 |
|---|---|---|---|
| Reporter: | Hartmut Holzgraefe | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Cluster: Cluster (NDB) storage engine | Severity: | S2 (Serious) |
| Version: | mysql-5.1-telco-6.2 | OS: | Linux |
| Assigned to: | Jonas Oreland | CPU Architecture: | Any |
| Tags: | mysql-cluster-6.3.32 | ||
[11 May 2010 17:40]
Hartmut Holzgraefe
[11 May 2010 17:45]
Hartmut Holzgraefe
first occurred after a power failure
[24 May 2010 7:58]
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/108990 3099 Jonas Oreland 2010-05-24 ndb - bug#53580 - fix bug that caused alloc(#requested, #min) to sometimes allocate less than #min, causing later problems
[24 May 2010 8: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/108992 3202 Jonas Oreland 2010-05-24 ndb - bug#53580 - part II (>= 6.3) - ndbrequire that we got what we asked for during mtoib
[24 May 2010 8:07]
Bugs System
Pushed into 5.1.44-ndb-6.3.34 (revid:jonas@mysql.com-20100524080154-74syl9t60ohrfl9j) (version source revid:jonas@mysql.com-20100524080154-74syl9t60ohrfl9j) (merge vers: 5.1.44-ndb-6.3.34) (pib:16)
[24 May 2010 8:07]
Bugs System
Pushed into 5.1.44-ndb-7.0.15 (revid:jonas@mysql.com-20100524080447-jl195st9spefjway) (version source revid:jonas@mysql.com-20100524080447-jl195st9spefjway) (merge vers: 5.1.44-ndb-7.0.15) (pib:16)
[24 May 2010 8:10]
Jonas Oreland
DOCS: A bug in internal buddy allocator could make "alloc(#wanted, #min)" which should try to allocate #wanted, but is allowed to allocate between #wanted-#min to allocate less than #min, causing problem during multi-threaded ordered index build. Note: this could also theoretically(but unlikely) cause problems in other areas of code. pushed to 6.2.19, 6.3.34, 7.0.15 and 7.1.4
[25 May 2010 9:45]
Jon Stephens
Documented bugfix in the NDB-6.2.19, 6.3.34, 7.0.15, and 7.1.4 changelogs, as follows:
An internal buffer allocator used by NDB has the form
'alloc(*wanted*, *minimum*)' and attempts to allocate *wanted*
pages, but is permitted to allocate a smaller number of pages
between *wanted* and *minimum*. However, this allocator could
sometimes allocate fewer than *minimum* pages, causing problems
with multi-threaded builds of ordered indexes.
Closed.
[4 Jun 2010 10:07]
Ricky Chan
Would this explain a rare bug I have seen? Namely (an arbitrary example): A unique hash index exists for column varchar column (say abc) NULL is allowed called index1. (as hash only, no btree NULL is fine). A row exists where abc = 'hello world' An update (made via mysqld) reset abc to NULL. (abc = NULL where abc = 'hello world'). Now you try to set another row to abc = 'hello world', you get duplicate key exists for '' now. I wrote some code using the C++ NDB API and found the following. I readTuple for index1, looking for abc = 'hello world'. Firstly: * A row is found!! this should not be the case. * On reading the row, the value for abc = NULL!! So the data is changed but the index has been updated. Rebuilding the indexes fixes this but it's a bit of concern for apps, which uses these type of indexes. I am using mysql cluster 7.0.13. If this indeed would fix this bug, when is a General Available due? I see that 7.1.3 (latest GA) doesn't have it yet... Many Thanks. Ricky p.s. If I can re-create this in lab, I'll update on how to replicate it. It's a strange one, that the data gets updated to NULL but the index entry for it still exists cause duplicate error where there is none.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.059 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.