Bug #54168 Online alter table with mysqlds generating binlog can crash mysqld
Submitted: 2 Jun 2010 6:41 Modified: 2 Jun 2010 8:54
Reporter: Jonas Oreland Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Cluster: Cluster (NDB) storage engine Severity:S3 (Non-critical)
Version:mysql-5.1-telco-6.2 OS:Any
Assigned to: Jonas Oreland CPU Architecture:Any

[2 Jun 2010 6:41] Jonas Oreland
Description:
When performing an online alter table with 2 or more mysqld's connected
generating binlog, an incorrect message can be sent from data-nodes
that causes mysqld to crash.

If mysqld is restarted, problem goes away,
  some node-restarts could also clear the error.

Note: The message was incorrect so that the crash don't occur exactly when
  the message was sent/received, but 2483 seconds later.

How to repeat:
2 mysqld
online alter

Suggested fix:
fix message
[2 Jun 2010 7:27] 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/109857

3101 Jonas Oreland	2010-06-02
      ndb - bug#54168 - fix so that sendFragmented doesnt tamper with signal->theData
[2 Jun 2010 7:47] Jonas Oreland
pushed to 6.2.19, 6.3.35, 7.0.16 and 7.1.5
[2 Jun 2010 8:55] Jon Stephens
Documented in the NDB-6.2.19, 6.3.35, 7.0.16, and 7.1.5 changelogs, as follows:

        When performing an online alter table where 2 or more SQL nodes
        connected to the cluster were generating binary logs, an
        incorrect message could be sent from the data nodes, causing
        mysqld processes to crash. This problem was often difficult to
        detect, because restarting SQL node or data node processes could
        clear the error, and because the crash in mysqld did not occur
        until several minutes after the erroneous message was sent and
        received.

Closed.
[2 Jun 2010 10:24] 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/109921

3208 Martin Skold	2010-06-02 [merge]
      Merge
      added:
        storage/ndb/include/portlib/ndb_socket_poller.h
      modified:
        mysql-test/t/ctype_cp932_binlog_stm.test
        storage/ndb/include/portlib/NdbTCP.h
        storage/ndb/include/transporter/TransporterRegistry.hpp
        storage/ndb/include/util/SocketClient.hpp
        storage/ndb/include/util/SocketServer.hpp
        storage/ndb/src/common/transporter/TCP_Transporter.cpp
        storage/ndb/src/common/transporter/TCP_Transporter.hpp
        storage/ndb/src/common/transporter/Transporter.cpp
        storage/ndb/src/common/transporter/TransporterRegistry.cpp
        storage/ndb/src/common/util/SocketClient.cpp
        storage/ndb/src/common/util/SocketServer.cpp
        storage/ndb/src/common/util/socket_io.cpp
        storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp
        storage/ndb/src/kernel/vm/SimulatedBlock.cpp
        storage/ndb/src/kernel/vm/VMSignal.hpp
        storage/ndb/src/mgmapi/mgmapi.cpp