[MDEV-6543] Crash if enable 'federatedx' when 'federated' plugin already enabled, and vice-versa Created: 2014-08-06  Updated: 2014-08-06  Resolved: 2014-08-06

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 10.0.12
Fix Version/s: 10.0.13

Type: Bug Priority: Major
Reporter: Chris Calender (Inactive) Assignee: Sergei Golubchik
Resolution: Fixed Votes: 1
Labels: None
Environment:

Windows



 Description   

I was testing out enabling some storage engines in 10.0.12, and generated a crash with the following 2 statements:

install soname 'ha_federated.dll';
install soname 'ha_federatedx.dll';

Here is the session output:

mysql> install soname 'ha_federated.dll';
Query OK, 0 rows affected (0.00 sec)
 
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| EXAMPLE            | YES     | Example storage engine                                                     | NO           | NO   | NO         |
| MRG_MyISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                                     | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
| FEDERATED          | YES     | FederatedX pluggable storage engine                                        | YES          | NO   | YES        |
| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| SPIDER             | YES     | Spider storage engine                                                      | YES          | YES  | NO         |
| CONNECT            | YES     | Management of External Data (SQL/MED), including many file formats         | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
13 rows in set (0.00 sec)
 
mysql> install soname 'ha_federatedx.dll';
ERROR 2013 (HY000): Lost connection to MySQL server during query

The same also happens if you install 'federatedx' first, and then 'federated'.

Note this corrupts the plugin table as well.

If once you restart mysqld after the crash, the run the crashing command again, you will see this in the error log:

140805 21:11:10 [ERROR] mysqld.exe: Table '.\mysql\plugin' is marked as crashed and should be repaired
140805 21:11:10 [ERROR] mysqld.exe: Table 'plugin' is marked as crashed and should be repaired
140805 21:11:10 [Warning] Checking table:   '.\mysql\plugin'
140805 21:11:10 [ERROR] mysql.plugin: 1 client is using or hasn't closed the table properly

When I ran:

uninstall soname 'ha_federated.dll';

That fixed the corruption, as I could then add either federated again (just not both).

Also, note that nothing was logged to the error log about the crash. The log made it look as if mysqld was still running:

...
140805 21:13:25 [Note] Event Scheduler: Loaded 0 events
140805 21:13:25 [Note] Reading of all Master_info entries succeded
140805 21:13:25 [Note] Added new Master_info '' to hash table
140805 21:13:25 [Note] C:\Program Files\MariaDB 10.0\bin\mysqld.exe: ready for connections.
Version: '10.0.12-MariaDB'  socket: ''  port: 3315  mariadb.org binary distribution
<--- Nothing else, but mysqld was crashed and down


Generated at Thu Feb 08 07:12:43 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.