Skip to content

Commit 7e49bff

Browse files
committed
MDEV-37777 upgrade from MySQL 5.7 regression, mysql.servers invalid structure
Revert the fix for MDEV-35622 (957ec8b). mysql.servers structure differs in different versions of MariaDB and MySQL, cannot use Table_check_intact to validate it.
1 parent 7b79d23 commit 7e49bff

File tree

3 files changed

+0
-81
lines changed

3 files changed

+0
-81
lines changed

mysql-test/main/grant_repair.result

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,15 +88,6 @@ create role r1;
8888
drop role r1;
8989
rename table mysql.roles_mapping_bak to mysql.roles_mapping;
9090
#
91-
# MDEV-35622 SEGV, ASAN use-after-poison when reading system table with less than expected number of columns
92-
#
93-
call mtr.add_suppression("mysql.servers");
94-
alter table mysql.servers drop column owner;
95-
insert into mysql.servers values(0,0,0,0,0,0,0,0);
96-
flush privileges;
97-
ERROR HY000: Cannot load from mysql.servers. The table is probably corrupted
98-
alter table mysql.servers add column Owner varchar(512) not null default '';
99-
#
10091
# MDEV-28482 SIGSEGV in get_access_value_from_val_int
10192
#
10293
create temporary table t1 select * from mysql.tables_priv;

mysql-test/main/grant_repair.test

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -104,16 +104,6 @@ create role r1;
104104
drop role r1;
105105
rename table mysql.roles_mapping_bak to mysql.roles_mapping;
106106

107-
--echo #
108-
--echo # MDEV-35622 SEGV, ASAN use-after-poison when reading system table with less than expected number of columns
109-
--echo #
110-
call mtr.add_suppression("mysql.servers");
111-
alter table mysql.servers drop column owner;
112-
insert into mysql.servers values(0,0,0,0,0,0,0,0);
113-
--error ER_CANNOT_LOAD_FROM_TABLE_V2
114-
flush privileges;
115-
alter table mysql.servers add column Owner varchar(512) not null default '';
116-
117107
--echo #
118108
--echo # MDEV-28482 SIGSEGV in get_access_value_from_val_int
119109
--echo #

sql/sql_servers.cc

Lines changed: 0 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -56,61 +56,6 @@ static MEM_ROOT mem;
5656
static mysql_rwlock_t THR_LOCK_servers;
5757
static LEX_CSTRING MYSQL_SERVERS_NAME= {STRING_WITH_LEN("servers") };
5858

59-
static const TABLE_FIELD_TYPE servers_table_fields[] =
60-
{
61-
{
62-
{ STRING_WITH_LEN("Server_name") },
63-
{ STRING_WITH_LEN("char(") },
64-
{ STRING_WITH_LEN("utf8mb") }
65-
},
66-
{
67-
{ STRING_WITH_LEN("Host") },
68-
{ STRING_WITH_LEN("varchar(") },
69-
{ STRING_WITH_LEN("utf8mb") }
70-
},
71-
{
72-
{ STRING_WITH_LEN("Db") },
73-
{ STRING_WITH_LEN("char(") },
74-
{ STRING_WITH_LEN("utf8mb") }
75-
},
76-
{
77-
{ STRING_WITH_LEN("Username") },
78-
{ STRING_WITH_LEN("char(") },
79-
{ STRING_WITH_LEN("utf8mb") }
80-
},
81-
{
82-
{ STRING_WITH_LEN("Password") },
83-
{ STRING_WITH_LEN("char(") },
84-
{ STRING_WITH_LEN("utf8mb") }
85-
},
86-
{
87-
{ STRING_WITH_LEN("Port") },
88-
{ STRING_WITH_LEN("int(") },
89-
{NULL, 0}
90-
},
91-
{
92-
{ STRING_WITH_LEN("Socket") },
93-
{ STRING_WITH_LEN("char(") },
94-
{ STRING_WITH_LEN("utf8mb") }
95-
},
96-
{
97-
{ STRING_WITH_LEN("Wrapper") },
98-
{ STRING_WITH_LEN("char(") },
99-
{ STRING_WITH_LEN("utf8mb") }
100-
},
101-
{
102-
{ STRING_WITH_LEN("Owner") },
103-
{ STRING_WITH_LEN("varchar(") },
104-
{ STRING_WITH_LEN("utf8mb") }
105-
}
106-
};
107-
static const TABLE_FIELD_DEF servers_table_def=
108-
{
109-
array_elements(servers_table_fields), servers_table_fields, 0, NULL
110-
};
111-
112-
static Table_check_intact_log_error table_intact;
113-
11459
static bool get_server_from_table_to_cache(TABLE *table);
11560

11661
/* insert functions */
@@ -408,13 +353,6 @@ bool servers_reload(THD *thd)
408353
goto end;
409354
}
410355

411-
if (table_intact.check(tables.table, &servers_table_def))
412-
{
413-
my_error(ER_CANNOT_LOAD_FROM_TABLE_V2, MYF(0),
414-
tables.db.str, tables.table_name.str);
415-
goto end;
416-
}
417-
418356
if ((return_val= servers_load(thd, &tables)))
419357
{ // Error. Revert to old list
420358
/* blast, for now, we have no servers, discuss later way to preserve */

0 commit comments

Comments
 (0)