@@ -7397,24 +7397,30 @@ event(errno: %d cur_log->error: %d)",
7397
7397
#ifdef WITH_WSREP
7398
7398
enum Log_event_type wsrep_peak_event (rpl_group_info *rgi, ulonglong* event_size)
7399
7399
{
7400
+ enum Log_event_type ev_type;
7401
+
7400
7402
mysql_mutex_lock (&rgi->rli ->data_lock );
7401
7403
7402
7404
unsigned long long event_pos= rgi->event_relay_log_pos ;
7405
+ unsigned long long orig_future_pos= rgi->future_event_relay_log_pos ;
7403
7406
unsigned long long future_pos= rgi->future_event_relay_log_pos ;
7404
7407
7405
- /* scan the log to read next event */
7406
- my_b_seek (rgi->rli ->cur_log , future_pos);
7407
- rgi->rli ->event_relay_log_pos = future_pos;
7408
- rgi->event_relay_log_pos = future_pos;
7409
-
7410
- Log_event* ev = next_event (rgi, event_size);
7411
- enum Log_event_type ev_type= (ev) ? ev->get_type_code () : UNKNOWN_EVENT;
7412
- delete ev;
7408
+ /* scan the log to read next event and we skip
7409
+ annotate events. */
7410
+ do {
7411
+ my_b_seek (rgi->rli ->cur_log , future_pos);
7412
+ rgi->rli ->event_relay_log_pos = future_pos;
7413
+ rgi->event_relay_log_pos = future_pos;
7414
+ Log_event* ev= next_event (rgi, event_size);
7415
+ ev_type= (ev) ? ev->get_type_code () : UNKNOWN_EVENT;
7416
+ delete ev;
7417
+ future_pos+= *event_size;
7418
+ } while (ev_type == ANNOTATE_ROWS_EVENT);
7413
7419
7414
7420
/* scan the log back and re-set the positions to original values */
7415
7421
rgi->rli ->event_relay_log_pos = event_pos;
7416
7422
rgi->event_relay_log_pos = event_pos;
7417
- my_b_seek (rgi->rli ->cur_log , future_pos );
7423
+ my_b_seek (rgi->rli ->cur_log , orig_future_pos );
7418
7424
7419
7425
mysql_mutex_unlock (&rgi->rli ->data_lock );
7420
7426
0 commit comments