File tree Expand file tree Collapse file tree 3 files changed +62
-4
lines changed Expand file tree Collapse file tree 3 files changed +62
-4
lines changed Original file line number Diff line number Diff line change @@ -110,3 +110,30 @@ Db Name Definer Time zone Type Execute at Interval value Interval field Starts E
110
110
test e1 root@localhost SYSTEM RECURRING # 1 SECOND # # DISABLED 1 latin1 latin1_swedish_ci latin1_swedish_ci
111
111
DROP EVENT e1;
112
112
# end test for bug#11748899
113
+ #
114
+ # Test for MDEV-21758 Events switched randomly to SLAVESIDE_DISABLED
115
+ #
116
+ create event ev on schedule every 1 minute do set @a= 1;
117
+ select name, originator, status from mysql.event;
118
+ name originator status
119
+ ev 1 ENABLED
120
+ #
121
+ # Restarting server with server_id=100
122
+ #
123
+ select @@global.server_id;
124
+ @@global.server_id
125
+ 100
126
+ select name, originator, status from mysql.event;
127
+ name originator status
128
+ ev 1 ENABLED
129
+ set global server_id= 1;
130
+ #
131
+ # Restarting server with the original server_id=1
132
+ #
133
+ select @@global.server_id;
134
+ @@global.server_id
135
+ 1
136
+ select name, originator, status from mysql.event;
137
+ name originator status
138
+ ev 1 ENABLED
139
+ drop event ev;
Original file line number Diff line number Diff line change @@ -141,3 +141,34 @@ SHOW EVENTS;
141
141
DROP EVENT e1;
142
142
143
143
--echo # end test for bug#11748899
144
+
145
+ --echo #
146
+ --echo # Test for MDEV-21758 Events switched randomly to SLAVESIDE_DISABLED
147
+ --echo #
148
+
149
+ create event ev on schedule every 1 minute do set @a= 1;
150
+ select name, originator, status from mysql.event;
151
+
152
+ --let $server_id= `SELECT @@global.server_id`
153
+
154
+ --echo #
155
+ --echo # Restarting server with server_id=100
156
+ --echo #
157
+ --let $restart_parameters= --server-id=100
158
+ --source include/restart_mysqld.inc
159
+
160
+ select @@global.server_id;
161
+ select name, originator, status from mysql.event;
162
+ --eval set global server_id= $server_id
163
+
164
+ --echo #
165
+ --echo # Restarting server with the original server_id=$server_id
166
+ --echo #
167
+ --let $restart_parameters=
168
+ --source include/restart_mysqld.inc
169
+
170
+ select @@global.server_id;
171
+ select name, originator, status from mysql.event;
172
+
173
+ # Cleanup
174
+ drop event ev;
Original file line number Diff line number Diff line change @@ -1201,9 +1201,9 @@ Events::load_events_from_db(THD *thd)
1201
1201
1202
1202
#ifdef WITH_WSREP
1203
1203
/* *
1204
- IF SST is done from a galera node that is also acting as MASTER
1205
- newly synced node in galera eco-system will also copy-over the event state
1206
- enabling duplicate event in galera eco-system.
1204
+ If SST is done from a galera node that is also acting as MASTER
1205
+ newly synced node in galera eco-system will also copy-over the
1206
+ event state enabling duplicate event in galera eco-system.
1207
1207
DISABLE such events if the current node is not event orginator.
1208
1208
(Also, make sure you skip disabling it if is already disabled to avoid
1209
1209
creation of redundant action)
@@ -1213,7 +1213,7 @@ Events::load_events_from_db(THD *thd)
1213
1213
Infact, based on galera use-case it seems like it recommends to have each
1214
1214
node with different server-id.
1215
1215
*/
1216
- if (et->originator != thd->variables .server_id )
1216
+ if (WSREP (thd) && et->originator != thd->variables .server_id )
1217
1217
{
1218
1218
if (et->status == Event_parse_data::SLAVESIDE_DISABLED)
1219
1219
continue ;
You can’t perform that action at this time.
0 commit comments