[MCOL-5047] Issue with creating database and/or table on save nodes Created: 2022-04-09  Updated: 2022-06-27

Status: Open
Project: MariaDB ColumnStore
Component/s: DDLProc
Affects Version/s: 6.3.1
Fix Version/s: Icebox

Type: Bug Priority: Major
Reporter: Daniel Lee (Inactive) Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None


 Description   

Build tested: 6.3.1-1 (#4234), CMAPI-1.6.3 (#619)

On a 3-node cluster, with PM1 being the master, PM2 and PM3 being the slaves, I was able to create a ColumnStore table on PM2, one of the slaves.

MariaDB [(none)]> create database db1;
Query OK, 1 row affected (0.000 sec)
 
MariaDB [(none)]> use db1
Database changed
MariaDB [db1]> create table t1 (c1 int) engine=columnstore;
Query OK, 0 rows affected (0.677 sec)

ColumnStore system catalog on PM2 showed the created table

MariaDB [db1]> use calpontsys
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
MariaDB [calpontsys]> select * from systable;
+-----------+--------+----------+------------+------------+------+------+-----------+-----------+-------------+---------------+
| tablename | schema | objectid | createdate | lastupdate | init | next | numofrows | avgrowlen | numofblocks | autoincrement |
+-----------+--------+----------+------------+------------+------+------+-----------+-----------+-------------+---------------+
| quicktest | mytest |     3000 | 2022-04-09 | NULL       | NULL | NULL |      NULL |      NULL |        NULL |             0 |
| orders    | mytest |     3004 | 2022-04-09 | NULL       | NULL | NULL |      NULL |      NULL |        NULL |             0 |
| lineitem  | mytest |     3017 | 2022-04-09 | NULL       | NULL | NULL |      NULL |      NULL |        NULL |             0 |
| t1        | db1    |     3037 | 2022-04-09 | NULL       | NULL | NULL |      NULL |      NULL |        NULL |             0 |
+-----------+--------+----------+------------+------------+------+------+-----------+-----------+-------------+---------------+
4 rows in set (0.025 sec)

PM1 also showed the same system catalog information. But database db1 does not exist in PM1.

MariaDB [calpontsys]> use db1;
ERROR 1049 (42000): Unknown database 'db1'
MariaDB [calpontsys]> show databases;
+---------------------+
| Database            |
+---------------------+
| calpontsys          |
| columnstore_info    |
| infinidb_querystats |
| information_schema  |
| mysql               |
| mytest              |
| performance_schema  |
| sys                 |
| test                |
+---------------------+
9 rows in set (0.000 sec)

There is no DDLProc or DMLProc processes running on PM2 and therefore it seems that table creation request was some how sent to PM1 for execution. But it did not check if db1 exists. It is safe to assume that the request was not send to MariaDB server on PM1, but to DDLProc instead.

The old behavior was that when trying to create a ColumnStore table on a slave node, ColumnStore would return an error indicating that tables need to be created on the master node (use to call the parent node). Now this integrity seem to have been broken.


Generated at Thu Feb 08 02:54:57 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.