Skip to content

Commit 63e35a6

Browse files
committed
Fix a crash in PluginVC, reschedule other_side with core_lock_retry_event instead sm_lock
1 parent 3a4d426 commit 63e35a6

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

proxy/PluginVC.cc

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,10 @@ PluginVC::process_write_side(bool other_side_call)
560560
if (!other_side_call) {
561561
other_side->process_read_side(true);
562562
} else {
563-
other_side->read_state.vio.reenable();
563+
// DO NOT call reenable() here,
564+
// reschedule other_side with core_lock instead of sm_lock.
565+
other_side->need_read_process = true;
566+
other_side->setup_event_cb(0, &other_side->core_lock_retry_event);
564567
}
565568
}
566569
}
@@ -676,7 +679,10 @@ PluginVC::process_read_side(bool other_side_call)
676679
if (!other_side_call) {
677680
other_side->process_write_side(true);
678681
} else {
679-
other_side->write_state.vio.reenable();
682+
// DO NOT call reenable() here,
683+
// reschedule other_side with core_lock instead of sm_lock.
684+
other_side->need_write_process = true;
685+
other_side->setup_event_cb(0, &other_side->core_lock_retry_event);
680686
}
681687
}
682688
}

0 commit comments

Comments
 (0)