Bug #29102 ndb_dd_sql_features fails in pushbuild
Submitted: 14 Jun 2007 10:37 Modified: 17 Sep 2007 10:34
Reporter: Mads Martin Joergensen Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S1 (Critical)
Version:5.1 OS:Any
Assigned to: Guangbao Ni CPU Architecture:Any
Tags: pbfail

[14 Jun 2007 10:37] Mads Martin Joergensen
Description:
Hi!  I notice an intermittent test failure of ndb_dd_sql_features, which
seems to have first shown up with this push in December (by serge into
5.1-ndb):

https://intranet.mysql.com/secure/pushbuild/showpush.pl?dir=mysql-5.1-new-ndb&order=231

That push shouldn't have caused it, though, it just changes another test
case file.

The failure looks like:

mysqltest: At line 544: query 'DROP TABLESPACE ts2 ENGINE=NDB' failed:
1517: Failed to drop TABLESPACE
(the last lines may be the most important ones)

It's shown up a couple of times in the current 5.1-maint tree, which is
why I'm looking at it.

https://intranet.mysql.com/secure/pushbuild/xref.pl?startdate=&enddate=&dir=&plat=&testtyp...

How to repeat:
https://intranet.mysql.com/secure/pushbuild/xref.pl?testname=ndb_dd_sql_features
[20 Jun 2007 19:53] Bugs System
Pushed into 5.1.20-beta
[2 Aug 2007 8:28] Guangbao Ni
ndb_dd_sql_features            [ fail ]

Errors are (from /dev/shm/var-n_stm-130/log/mysqltest-time) :
mysqltest: Result content mismatch
(the last lines may be the most important ones)
Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/ndb_dd_sql_features.result	Wed Aug  1 18:06:15 2007
--- r/ndb_dd_sql_features.reject	Wed Aug  1 19:08:18 2007
***************
*** 157,163 ****
  SELECT a1,length(a2),substr(a2,4998,2),length(a3),substr(a3,49997,3)
  FROM test.t1 WHERE a1=1;
  a1	length(a2)	substr(a2,4998,2)	length(a3)	substr(a3,49997,3)
! 1	5000	dd	50000	555
  UPDATE test.t1 SET a2=@vc4, a3=@bb4 WHERE a1=2;
  SELECT a1,length(a2),substr(a2,3998,2),length(a3),substr(a3,39997,3)
  FROM test.t1 WHERE a1=2;
--- 157,163 ----
  SELECT a1,length(a2),substr(a2,4998,2),length(a3),substr(a3,49997,3)
  FROM test.t1 WHERE a1=1;
  a1	length(a2)	substr(a2,4998,2)	length(a3)	substr(a3,49997,3)
! 1	5000	dd	50000	XXX
  UPDATE test.t1 SET a2=@vc4, a3=@bb4 WHERE a1=2;
  SELECT a1,length(a2),substr(a2,3998,2),length(a3),substr(a3,39997,3)
  FROM test.t1 WHERE a1=2;
-------------------------------------------------------
[29 Aug 2007 18:48] 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/33380

ChangeSet@1.2476, 2007-08-29 21:45:53+03:00, pekka@sama.ndb.mysql.com +1 -0
  ndb - bug#29102 : use locked read even for blob parts
[7 Sep 2007 19:26] Jon Stephens
Documented bugfix in mysql-5.1.22-ndb-6.2.5 changelog as:

<literal>DROP TABLESPACE</literal> failed when a table that had been using the tablespace contained a <literal>BLOB</literal> column.

Left bug report in PP status pending mainline merges.
[12 Sep 2007 12:29] Guangbao Ni
merge into mysql-5.1.22-ndb-6.2.5
[14 Sep 2007 16:25] Bugs System
Pushed into 5.0.50
[14 Sep 2007 16:25] Bugs System
Pushed into 5.1.23-beta
[16 Sep 2007 17:55] Jon Stephens
Documented fix in 5.1.23 changelog.
[16 Sep 2007 17:56] Jon Stephens
Why was a Disk Data bugfix pushed to 5.0?
[17 Sep 2007 7:21] Guangbao Ni
Hi Jon,

  No, It isn't only for Disk Data. The real problem is that unlock reading can get the real data of Blob part commited last time.
  So, this patch is to use locked read even for blob parts.

    race condition : s/committedRead/readTuple/ when reading parts since TUP commits tuples separately in NdbBlob.cpp

/Guangbao
[17 Sep 2007 10:07] Jon Stephens
Set back to Documenting status so I won't forget to fix this... :) Thanks!
[17 Sep 2007 10:34] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.

If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html

Documented with new description in mysql-5.1.22-ndb-6.2.5, 5.1.23, and 5.0.50 changelogs:

  Reads on BLOB columns were not locked when they needed to be, in order to 
  guarantee consistency.
[17 Sep 2007 10:37] Jon Stephens
Also reverted Category from ClusterDD to Cluster per note from GNi.