Bug #16761 Got error 241 'Invalid schema object version'
Submitted: 24 Jan 2006 23:59 Modified: 23 Nov 2008 4:24
Reporter: Stephen Cravey Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:4.1.20, 5.0.21 OS:Any
Assigned to: Assigned Account CPU Architecture:Any

[24 Jan 2006 23:59] Stephen Cravey
Description:
Following a restore from a mysqldump from another server into the ndbcluster, sql nodes not involved in the restore are unable to access data on the first request.

A second select against the table clear the error, but I can't code for that in my app and I will periodically need to restore into an ndbcluster database while another ndbcluster is running and cannot be brought down.

For example, on a table with ~380K rows:

mysql> select count(customerid) from customer;
+-------------------+
| count(customerid) |
+-------------------+
|        4294967295 |
+-------------------+
1 row in set (0.00 sec)

mysql> flush tables;
Query OK, 0 rows affected (0.00 sec)

mysql> select count(customerid) from customer;
+-------------------+
| count(customerid) |
+-------------------+
|        4294967295 |
+-------------------+
1 row in set (0.00 sec)

mysql> select * from customer;
ERROR 1296 (HY000): Got error 241 'Invalid schema object version' from ndbcluster
mysql> select * from customer;

<correct response follows>

How to repeat:
restore a DB from an sql based backup file from mysqldump.
access affected tables from sql node not used in the restore.
[31 Jan 2006 7:50] Valeriy Kravchuk
Looks like a duplicate of bug #9144 (that was marked as a duplicate of bug #8753, in turn), but for 5.0. Please, inform about the other possible duplicates you found. 

I am trying to figure out if patch for bug #8753 really merged in 5.0.x.
[31 Jan 2006 20:48] Stephen Cravey
Yes, This appears to be a duplicate, but for 5.0.x instead of the posted bugs for 5.1 and 4.x. I would like to know if a patch for 5.0.x is forthcoming. I am disappointed that cluster cannot handle a schema change without a full shutdown.
[23 Mar 2006 17:30] Valeriy Kravchuk
Please, try to repeat with a newer version, 5.0.19, and inform about the results.
[23 Apr 2006 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[19 May 2006 8:58] heh heh
I am experiencing exactly the same problem, a second query clears the situation up.

Please note that I am running 5.0.21 so this is still not resolved.

Thank you
[6 Jun 2006 20:28] David Abbott
Also seeing problem. My dev environment is using 2 servers, each runs both ndbd and mysql so config.ini is just default i.e. Replicas=2, 2 MYSQLD.

I typically run in the SQL from a mysqldump. Best way to reproduce is to run it a couple of times on a non-cluster server connecting via mysql -h, then run a basic query against one of the tables from one of the nodes.

Alternatively run the drop/create sql in from one node and query the data from the other node.

I've also seen this crash a node completely with -

ERROR 1297 (HY000) at line 1: Got temporary error 4010 'Node failure caused abort of transaction' from ndbcluster 

Am running -

MySQL-client-4.1.20-0.glibc23
MySQL-Max-4.1.20-0.glibc23
MySQL-server-4.1.20-0.glibc23
MySQL-ndb-storage-4.1.20-0.glibc23

on both nodes on RHEL4.
[9 Aug 2007 21:37] Brian Moon
I am seeing this error every hour or so on tables that are updated every 5 minutes.  I am using 5.0.38.
[24 Jul 2008 17:15] Jonathan Perkin
For the record, I see this too in 5.0.67 community release builds (on solaris9 x86/sparc/sparc64)

ndb_bug31477                   [ fail ]

mysqltest: At line NNN: query 'update t1 set c = 2 where b = 1' failed with wrong errno 1296: 'Got error 241 'Invalid schema object version' from ndbcluster', instead of 1205...

The result from queries just before the failure was:
< snip >
insert into t1 values (2,2,2);
insert into t1 values (3,3,3);
insert into t1 values (4,4,4);
begin;
insert into t1 values (1,1,1);
begin;
update t1 set c = 2 where b = 1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
rollback;
rollback;
drop table t1;
create table t1(a int primary key, b int, c int, key(b)) engine = ndb;
insert into t1 values (2,2,2);
insert into t1 values (3,3,3);
insert into t1 values (4,4,4);
begin;
insert into t1 values (1,1,1);
begin;
update t1 set c = 2 where b = 1;
ERROR HY000: Got error 241 'Invalid schema object version' from ndbcluster

More results from queries before failure can be found in /PATH/mysql-test/var/log/ndb_bug31477.log

Warnings from just before the error:
Error 1296 Got error 241 'Invalid schema object version' from NDB
[23 Oct 2008 4:24] Martin Skold
Are you issuing any ALTER TABLE commands (or dropping/creating the
same table)? Have you tried flush tables to see if problem goes away?
Schema distribution in 5.0 release is not automatic, but in a lazy manner,
tables are detected to be out-of-date and are autodiscovered (copied) from
ndb data dictionary.
Is this a production release, otherwise we recommend using a later 5.1 release.
[27 Oct 2008 19:05] Joerg Bruehe
For the record:

The problem also shows up in the build of 5.0.72, test "ndb_bug31477".
[24 Nov 2008 0:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[24 Nov 2008 7:47] Christophe Leclef
I had the same problem with my cluster. This was just because one of the data node (ndbd) was not running anymore. Also my MySQL Server was restarting almost after or during each query.
[2 Feb 2009 20:03] Joerg Bruehe
Setting back to "verified", as it still occurs - this here is from 5.0.77:

=====
ndb_bug31477                   [ fail ]

mysqltest: At line 45: query 'update t1 set c = 2 where b = 1' failed with wrong errno 1296: 'Got error 241 'Invalid schema object version' from ndbcluster', instead of 1205...

The result from queries just before the failure was:
< snip >
insert into t1 values (2,2,2);
insert into t1 values (3,3,3);
insert into t1 values (4,4,4);
begin;
insert into t1 values (1,1,1);
begin;
update t1 set c = 2 where b = 1;
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
rollback;
rollback;
drop table t1;
create table t1(a int primary key, b int, c int, key(b)) engine = ndb;
insert into t1 values (2,2,2);
insert into t1 values (3,3,3);
insert into t1 values (4,4,4);
begin;
insert into t1 values (1,1,1);
begin;
update t1 set c = 2 where b = 1;
ERROR HY000: Got error 241 'Invalid schema object version' from ndbcluster

More results from queries before failure can be found in /PATH/mysql-test/var/log/ndb_bug31477.log

Warnings from just before the error:
Error 1296 Got error 241 'Invalid schema object version' from NDB

Stopping All Servers
=====

In 5.0.77, I had this same symptom on
- Linux, RedHat 5, x86
- Linux, "generic" (glibc2.3), x86
- Mac OS X 10.3, PPC (32 bit)

I had the same NDB error at a different point in that test, too:

=====
ndb_bug31477                   [ fail ]

mysqltest: At line 71: query 'select * from t1 where b >= 1 order by b' failed: 1296: Got error 241 'Invalid schema object version' from ndbcluster

The result from queries just before the failure was:
< snip >
drop table t1;
--con1
create table t1(a int primary key, b int, c int, key(b)) engine = ndb;
insert into t1 values (1,1,1);
insert into t1 values (2,2,2);
insert into t1 values (3,3,3);
insert into t1 values (4,4,4);
begin;
update t1 set c = 10 where a = 1;
update t1 set c = 20 where a = 1;
update t1 set c = 30 where a = 1;
--con1 c=30
select * from t1 where b >= 1 order by b;
a       b       c
1       1       30
2       2       2
3       3       3
4       4       4
--con2 c=1
select * from t1 where b >= 1 order by b;

More results from queries before failure can be found in /PATH/mysql-test/var/log/ndb_bug31477.log

Warnings from just before the error:
Error 1296 Got error 241 'Invalid schema object version' from NDB

Stopping All Servers
=====

That was on AIX 5.2, PPC (32 bit).