Bug #16879 ndb_cache2 and ndb_cache_multi2 fail on AMD64, Linux
Submitted: 29 Jan 2006 0:37 Modified: 15 Feb 2006 0:49
Reporter: Patrick Galbraith Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:5.1 OS:Linux (SuSe Linux 10, AMD64)
Assigned to: CPU Architecture:Any

[29 Jan 2006 0:37] Patrick Galbraith
Description:
TEST                           RESULT
-------------------------------------------------------

ndb_cache2                     [ fail ]

Errors are (from /home/patg/mysql-build/mysql-5.1-new/mysql-test/var/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_cache2.result 2006-01-26 00:55:20.000000000 +0300
--- r/ndb_cache2.reject 2006-01-29 03:28:08.000000000 +0300
***************
*** 101,107 ****
  1     3       3       First row
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   3
  delete from t1 where c1='Fourth row';
  show status like "Qcache_queries_in_cache";
  Variable_name Value
--- 101,107 ----
  1     3       3       First row
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   2
  delete from t1 where c1='Fourth row';
  show status like "Qcache_queries_in_cache";
  Variable_name Value
***************
*** 111,117 ****
  1     3       3       First row
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   3
  use test;
  select * from t1 order by pk desc;
  pk    a1      b1      c1
--- 111,117 ----
  1     3       3       First row
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   2
  use test;
  select * from t1 order by pk desc;
  pk    a1      b1      c1
***************
*** 122,128 ****
  1     3       3       First row
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   4
  update t1 set a1=4 where b1=3;
  use test;
  show status like "Qcache_queries_in_cache";
--- 122,128 ----
  1     3       3       First row
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   3
  update t1 set a1=4 where b1=3;
  use test;
  show status like "Qcache_queries_in_cache";
***************
*** 138,147 ****
  1     4       3       First row
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        7
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   5
  select * from t1 order by pk desc;
  pk    a1      b1      c1
  2     7       8       Second row
--- 138,147 ----
  1     4       3       First row
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        8
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   4
  select * from t1 order by pk desc;
  pk    a1      b1      c1
  2     7       8       Second row
***************
*** 155,164 ****
  Qcache_queries_in_cache       1
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        7
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   7
  select * from t2;
  pk    a2      b2
  1     2       3
--- 155,164 ----
  Qcache_queries_in_cache       1
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        8
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   6
  select * from t2;
  pk    a2      b2
  1     2       3
***************
*** 611,620 ****
  Qcache_queries_in_cache       5
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        10
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   15
  drop table t1, t2, t3, t4, t5;
  show status like "Qcache_queries_in_cache";
  Variable_name Value
--- 611,620 ----
  Qcache_queries_in_cache       5
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        15
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   10
  drop table t1, t2, t3, t4, t5;
  show status like "Qcache_queries_in_cache";
  Variable_name Value
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.

Aborting: ndb_cache2 failed in default mode. To continue, re-run with '--force'.
Ending Tests
Shutting-down MySQL daemon

Master(s) shutdown finished
Slave(s) shutdown finished
patg@govinda:~/mysql-build/mysql-5.1-new/mysql-test>  

Below are the diffs between actual and expected results:
-------------------------------------------------------
*** r/ndb_cache_multi2.result   2006-01-26 00:55:20.000000000 +0300
--- r/ndb_cache_multi2.reject   2006-01-29 03:35:07.000000000 +0300
***************
*** 61,76 ****
  Qcache_hits   0
  select * from t1;
  a
! 3
  show status like "Qcache_queries_in_cache";
  Variable_name Value
  Qcache_queries_in_cache       2
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        3
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   0
  drop table t1, t2;
  set GLOBAL query_cache_size=0;
  set GLOBAL ndb_cache_check_time=0;
--- 61,76 ----
  Qcache_hits   0
  select * from t1;
  a
! 2
  show status like "Qcache_queries_in_cache";
  Variable_name Value
  Qcache_queries_in_cache       2
  show status like "Qcache_inserts";
  Variable_name Value
! Qcache_inserts        2
  show status like "Qcache_hits";
  Variable_name Value
! Qcache_hits   1
  drop table t1, t2;
  set GLOBAL query_cache_size=0;
  set GLOBAL ndb_cache_check_time=0;
-------------------------------------------------------
Please follow the instructions outlined at
http://www.mysql.com/doc/en/Reporting_mysqltest_bugs.html
to find the reason to this problem and how to report this.

How to repeat:
Build latest from bk:

last several entries on my tree:

ChangeSet@1.2075.1.1, 2006-01-27 20:27:10+01:00, pekka@mysql.com
  ndb - wl#2972 fix null blobs

ChangeSet@1.2076.4.1, 2006-01-27 16:41:53+01:00, rburnett@production.mysql.com
  BUG#15820 - Can create table with 1 partition, then doing ALTER .. ADD PARTITION crashes
  It is ok for a partitioned table to have only 1 partition.  This test is just to show that
  doing the ALTER TABLE ADD PARTITION doesn't crash the server.

  partition_mgm_err.result:
    Added result block for test of bug #15820
  partition_mgm_err.test:
    Added test block for bug #15820

ChangeSet@1.2081.1.4, 2006-01-27 15:58:00+01:00, jonas@perch.ndb.mysql.com
  ndb - fix compile error on sles9-x86

Run make test, or cd ./mysql-test/, ./mysql-test-run.pl ndb_cache2, ./mysql-test.run.pl ndb_cache_multi2
[29 Jan 2006 10:30] Jorge del Conde
Tested under FC4 X64
[29 Jan 2006 10:38] Jonas Oreland
Hi Patric,

I heard of this failure every now and then but has never been able to reproduce it.
(I have a AMD64X2 4400+ running gentoo with 2.6.12-SMP)

What kind of kernel are you running, how much memory do you have.
Is it reproducable?
If so, can I try on your computer (it hasnt failed yet in pb...)

/Jonas
[31 Jan 2006 19:07] Patrick Galbraith
patg@govinda:~/mysql-build/mysql-5.1-new/sql> uname -a
Linux govinda 2.6.13-15.7-default #1 Tue Nov 29 14:32:29 UTC 2005 x86_64 x86_64 x86_64 GNU/Linux

patg@govinda:~/mysql-build/mysql-5.1-new/sql> cat /proc/meminfo
MemTotal:      1024300 kB
MemFree:         20736 kB
Buffers:        227108 kB
Cached:         103348 kB
SwapCached:          0 kB
Active:         380300 kB
Inactive:       185936 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:      1024300 kB
LowFree:         20736 kB
SwapTotal:      979956 kB
SwapFree:       976628 kB
Dirty:              76 kB
Writeback:           0 kB
Mapped:         297036 kB
Slab:           419660 kB
CommitLimit:   1492104 kB
Committed_AS:   352596 kB
PageTables:       6240 kB
VmallocTotal: 34359738367 kB
VmallocUsed:     11160 kB
VmallocChunk: 34359724563 kB
HugePages_Total:     0
HugePages_Free:      0
Hugepagesize:     2048 kB

If there is a way to get you to log in to my box, I'd be fine with that - I'd probably have to set up port forwarding on my router I suppose.
[1 Feb 2006 5:44] Jonas Oreland
> If there is a way to get you to log in to my box, I'd be fine with that - I'd
> probably have to set up port forwarding on my router I suppose.

Not neccesarry.

If you do this
atpat> ssh -R 8192:localhost:22 mysqldev@production.mysql.com

Then I can
atjonas> ssh mysqldev@production.mysql.com
mysqldev@production:~> ssh -o StrictHostKeyChecking=no -p 8192 user@localhost

And I'll get to your place wo/ you changing anything in any router.
You need to have your part of ssh tunnel open ofcourse.
And I need a username/password.

Let me know if this sounds ok to you?
[15 Feb 2006 0:49] Jim Winstead
This is a duplicate of Bug #15004.