Bug #28195 enter single user mode displays wrong node
Submitted: 2 May 2007 6:46 Modified: 12 Jun 2007 2:28
Reporter: Oli Sennhauser Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S2 (Serious)
Version:5.0.38 OS:Any
Assigned to: CPU Architecture:Any

[2 May 2007 6:46] Oli Sennhauser
Description:
We have a 2 node cluster with 3 sql nodes attached (2 sql nodes are sitting on the data node server).

when we do a enter single user mode for doing mysqldump backup the wrong node is displayed as connected.

How to repeat:
enter single user mode 7;

2007-05-02 14:37:26 [MgmSrvr] INFO     -- Node 3: Entering single user mode
2007-05-02 14:37:26 [MgmSrvr] INFO     -- Node 4: Entering single user mode
2007-05-02 14:37:33 [MgmSrvr] INFO     -- Node 3: Entered single user mode Node 7 has exclusive access
2007-05-02 14:37:33 [MgmSrvr] INFO     -- Node 4: Entered single user mode Node 7 has exclusive access

ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @202.95.235.132  (Version: 5.0.37, single user mode, Nodegroup: 0, Master)
id=4    @202.95.235.134  (Version: 5.0.37, single user mode, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @202.95.235.133  (Version: 5.0.37)

[mysqld(API)]   6 node(s)
id=5 (not connected, accepting connect from 202.95.235.132)
id=6    @202.95.235.134  (Version: 5.0.37)
id=7 (not connected, accepting connect from 202.95.235.133)
id=8 (not connected, accepting connect from any host)
id=9 (not connected, accepting connect from any host)
id=10 (not connected, accepting connect from any host)

when we do a insert from node 7 it works:

mysql> select count(*) from backup_test;
+----------+
| count(*) |
+----------+
|    12840 |
+----------+
1 row in set (0.00 sec)

mysql> insert into backup_test values (null, null);
Query OK, 1 row affected (0.00 sec)

mysql> select count(*) from backup_test;
+----------+
| count(*) |
+----------+
|    12841 |
+----------+
1 row in set (0.01 sec)

mysql> exit
Bye
[root@VOBB-SQL-MGR mysql-cluster]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:14:5E:69:68:14
          inet addr:202.95.235.133  Bcast:202.95.235.191  Mask:255.255.255.192
          inet6 addr: fe80::214:5eff:fe69:6814/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3940543 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3897517 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:712774977 (679.7 MiB)  TX bytes:1340291029 (1.2 GiB)
          Interrupt:169

Suggested fix:
no idea
[3 May 2007 12:02] Hartmut Holzgraefe
For me entering single user mode doesn't change the SHOW output in the "mysql(api)" section at all, all mysqld nodes still show as connected
after entering single user mode, but only the specified node is able
to access the data nodes ...
[4 May 2007 2:56] Oli Sennhauser
I can reproduce it today on our system:

ndb_mgm> show
Connected to Management Server at: 202.95.235.133:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @202.95.235.132  (Version: 5.0.37, Nodegroup: 0, Master)
id=4    @202.95.235.134  (Version: 5.0.37, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @202.95.235.133  (Version: 5.0.37)

[mysqld(API)]   3 node(s)
id=5    @202.95.235.132  (Version: 5.0.37)
id=6    @202.95.235.134  (Version: 5.0.37)
id=7    @202.95.235.133  (Version: 5.0.37)

ndb_mgm> enter single user mode 5;
Single user mode entered
Access is granted for API node 5 only.
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=3    @202.95.235.132  (Version: 5.0.37, single user mode, Nodegroup: 0, Master)
id=4    @202.95.235.134  (Version: 5.0.37, single user mode, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @202.95.235.133  (Version: 5.0.37)

[mysqld(API)]   3 node(s)
id=5 (not connected, accepting connect from 202.95.235.132)
id=6    @202.95.235.134  (Version: 5.0.37)
id=7 (not connected, accepting connect from 202.95.235.133)

but I can work from mysqld on 202.95.235.132
[4 May 2007 4:00] Adam Dixon
Oli,
I am not sure I follow,

"[mysqld(API)]   3 node(s)"
"id=5    @202.95.235.132  (Version: 5.0.37)"

"ndb_mgm> enter single user mode 5;"

"id=5 (not connected, accepting connect from 202.95.235.132)" 
? Is this mysql node crashed or did you shut it down, issuing 'ndb_mgm> all status' could make things clearer at this stage.

"but I can work from mysqld on 202.95.235.132" 
(which is node 5 - as expected? but you don't show node 5 as even connected)

Sorry if I don't follow what you expect, can you please clarify so I can try and reproduce?
[4 May 2007 4:33] Oli Sennhauser
Hi Adam

What I did was only this:

ndb_mgm> show
ndb_mgm> enter single user mode 5;
ndb_mgm> show

? Is this mysql node crashed or did you shut it down, issuing 'ndb_mgm> all
status' could make things clearer at this stage.

> this node is neither crashed nor shut down. if I enter single user mode all nodes should be disconnected except the one I want. all status does not help because it shows only the data nodes and not the sql nodes.

"but I can work from mysqld on 202.95.235.132" 
(which is node 5 - as expected? but you don't show node 5 as even connected)

that is the error! exactly!
[4 May 2007 5:16] Adam Dixon
Could not reproduce in 5.0.40

Mysql nodes 4 and 5.

ndb_mgm> enter single user mode 4

ndb_mgm> show
[ndbd(NDB)]     2 node(s)
id=2    @127.0.0.1  (Version: 5.0.40, single user mode, Nodegroup: 0, Master)
id=3    @127.0.0.1  (Version: 5.0.40, single user mode, Nodegroup: 0)
...
[mysqld(API)]   3 node(s)
id=4    @127.0.0.1  (Version: 5.0.40)
id=5    @127.0.0.1  (Version: 5.0.40)

From node 5,
mysql> insert into zzcat (id) values (null);
ERROR 1296 (HY000): Got error 299 'Operation not allowed or aborted due to single user mode' from ndbcluster
[4 May 2007 5:47] Adam Dixon
Anything in the cluster log about the mysql nodes ?

I cannot repeat in 5.0.38 either.

ndb_mgm> enter single user mode 4
Single user mode entered
Access is granted for API node 4 only.
ndb_mgm> show
Cluster Configuration
---------------------
[ndbd(NDB)]     2 node(s)
id=2    @127.0.0.1  (Version: 5.0.38, single user mode, Nodegroup: 0, Master)
id=3    @127.0.0.1  (Version: 5.0.38, single user mode, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)
id=1    @127.0.0.1  (Version: 5.0.38)

[mysqld(API)]   3 node(s)
id=4    @127.0.0.1  (Version: 5.0.38)
id=5    @127.0.0.1  (Version: 5.0.38)
id=6 (not connected, accepting connect from any host)

ndb_mgm> all status
Node 2: single user mode (Version 5.0.38)
Node 3: single user mode (Version 5.0.38)
[4 May 2007 10:04] Oli Sennhauser
hi all
we found a part of the solution. there were some firewall rules active on one of the data nodes. when firewall was completly disabled. this problem does not happen anymore.

But! even with firewall enabled. something in the display is wrong anyway!
[8 May 2007 4:52] Adam Dixon
Oli, do you know which firewall rules were active on each of the hosts? Can you attach these rules as a file for review? This would of been why the display output was 'incorrect' a message would of been blocked somewhere.
[12 Jun 2007 2:28] Adam Dixon
No feedback was provided. The bug is being suspended because we assume that you are no longer experiencing the problem. If this is not the case and you are able to provide the information that was requested earlier, please do so and change the status of the bug back to "Open". Thank you.