MySQL Cluster Manager 1.4 Release Notes

3 Changes in MySQL Cluster Manager 1.4.7 (2018-12-14)

Functionality Added or Changed

  • Agent: Performance has been improved for the add package command by removing unnecessary queries from its execution process. (Bug #28950231)

  • Agent: The initialization script for mcmd now cleans up the temporary files it creates under the tmp directory while starting new mcmd processes. (Bug #28924059)

  • Agent: The list hosts command now returns, in addition to Available and Unavailable, two more possible statuses for the agent of a host:

    • Recovery: The agent is in the process of recovering itself

    • Unresponsive: The agent rejected an attempt to connect

    (Bug #28438155)

  • Agent: The option --core-file, when used on the command line to start a node in a wild cluster, now causes the import cluster and update process commands to give a warning (that the option may be removed on next restart of the process), instead of causing the commands to fail. See Creating and Configuring the Target Cluster for details. (Bug #28177366)

  • Agent: The import cluster and update process commands now support a new --remove-angel option, which kills any angel processes for the data nodes to be imported or updated and also updates the data nodes' PID files. See descriptions for the two commands for details. (Bug #28116279)

  • Agent: The backup cluster command finishes faster now, as some unnecessary wait time has been eliminated from the backup process. (Bug #27986443)

  • Agent: A new option for mcmd, --initial, allows an agent that has fallen into an inconsistent state to recover its configuration from other agents. See the description for --initial for details. (Bug #20892397)

  • Agent: The set, get, and reset commands now support the following command-line-only attributes, which can only be configured on the command line when outside MySQL Cluster Manager:

  • Agent: The internal mechanism for agent recovery has been improved, making it more robust and less error-prone.

  • Client: To reduce the size of the mcmd log, node events are no longer dumped into the log during a cluster restart. (Bug #28843656)

  • Client: The message for ERROR 5200 (Restore cannot be performed ...) has been expanded to include the reason for the restore's failure. (Bug #25075284)

  • Client: The message for ERROR 5017 has been expanded to include the reason for an action being invalid for a process or cluster. (Bug #22777846)

Bugs Fixed

  • Agent: A large number of unnecessary warnings and error messages have been removed from the log for the import cluster command. (Bug #28950370)

  • Agent: During a rolling restart for a cluster (which takes place, for example, after a cluster reconfiguration), the node group IDs for some data nodes might become some invalid numbers transiently, and that might cause mcmd to throw an internal error (Error 1003). With this fix, such transient changes of node group IDs are ignored by mcmd, and no error is thrown. (Bug #28949173)

  • Agent: An update process command on a mysqld node failed with a timeout if the node was in the status of stopping. It was because mcmd did not retry stopping the node, and this fix makes it do so in the situation. (Bug #28913525)

  • Agent: After a cluster reconfiguration failed, the restart of an mcmd agent that had lost contact with other agents might fail with a checksum error. That was because in the process, the original configuration for the cluster was removed from the agent's repository by mistake. With this fix, the original cluster configuration was preserved and the agent restarts as expected. (Bug #28904775)

  • Agent: When trying to shutdown a mysqld node, if mcmd failed to get the MySQL Server's version number through a query, the shutdown failed because mcmd could not decide on the proper shutdown method. With this fix, mcmd falls back on the shutdown method for the MySQL Server version bundled with the mcmd version in the MySQL Cluster CGE distribution. (Bug #28830884)

  • Agent: Commands to reconfigure or stop a cluster hung when a mysqld node did not respond to queries. With this fix, under the situation, a query to a mysqld node times out after a certain period of time, after which the command for reconfiguring or stopping the cluster is aborted and an error is returned. (Bug #28813012)

  • Agent: mcmd hung when it failed to stop a data node that was in an unknown status. With this fix, the stop process command fails with an error in the situation. (Bug #28780427)

  • Agent: Attempts to restore an mcmd agent with data from other agents failed with the agent remaining in the state of recovering indefinitely, when any of the cluster log files was very long. With this fix, the agent only scans the most recent segments of the logs instead of the full logs for error information, which speeds up the restore process and allows it to be completed. (Bug #28671584)

  • Agent: In an environment that used only IP addresses, if a site was defined using host names, an mcmd agent hung at startup or restart when it attempted reverse DNS lookups. (Bug #28437469)

  • Agent: The collect logs command sometimes reported success before the operation was actually finished if the cluster had many hosts and a lot of log data to be collected. (Bug #28282932)

  • Agent: mcmd failed to start when its init.d script found the previous PID for mcmd was in use by another process, which was taken to mean mcmd was already running. With this fix, the process name for the PID is also checked, so that mcmd is started again if the PID is no longer used by mcmd. (Bug #28278727)

  • Agent: The collect logs command failed with an ERROR 1003 Internal error when no data was received on the TCP connection established for collecting data from another host. With this fix, the connection is closed gracefully if no data is received, allowing other hosts to connect to the TCP port and send data. (Bug #28278410)

  • Agent: The restore cluster command failed when the cluster to be restored contained databases with special characters in their names. (Bug #28220549)

  • Agent: Memory leaks occurred when an mcmd process on a management node read large cluster logs during its operations. This fix makes sure mcmd regularly truncates the buffer for log reading, so the buffer size does not keep growing in an uncontrolled manner. (Bug #28076545)

  • Agent: On Windows platforms, the collect logs command failed with an ERROR 1003 Internal error when the path name of a log file to be transferred was exactly 260 characters. It was because, while 260 is the maximum number of characters allowed, the internal test forgot to count the trailing zero for the path name in the internal buffer, so it failed to catch the error. With this fix, mcmd throws an ERROR 106 Path max length exceeded for file instead in the situation. (Bug #28062069)

  • Agent: If mcmd was started on Windows platforms with the option --log-syslog being true but without specifying the --log-file option, running the show settings command would cause mcmd to quit with an Error 2013 (Lost connection to MySQL server during query). (Bug #27981362)

  • Agent: When, due to some reasons (for example, time jumps on virtual machines), an mcmd agent ended up receiving incomplete event records from an ndb_mgmd node, the agent quit unexpectedly. With this fix, mcmd can now parse and handle incomplete records properly. (Bug #25746295)

  • Agent: Agent recovery (for example, after upgrading the agents) sometimes failed when the agent received recovery configurations both locally and from a remote host, and the recovering process was then frustrated, With the new recovery mechanism now in place, the recovery configuration is only received once. (Bug #25517245)

  • Agent: The create site command failed with a timeout when the site to be created had a large number of hosts (more than 45), and the hosts were not uniform in their machine configurations. (Bug #25075284)

  • Client: In a number of instances where an ndb_mgmd command or a mysqld query failed, the wrong error (Error 1006 or Error 7006) was thrown. With this fix, the appropriate Error 7030 is thrown instead. (Bug #28829732)