We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 98519bf commit 309b186Copy full SHA for 309b186
src/server/transaction.cc
@@ -689,7 +689,12 @@ OpStatus Transaction::ScheduleSingleHop(RunnableType cb) {
689
}
690
};
691
692
- if (coordinator_index_ == unique_shard_id_) {
+ // We can't allow inline scheduling during a full sync, because then journaling transactions
693
+ // will be scheduled before RdbLoader::LoadItemsBuffer is finished. We can't use the regular
694
+ // locking mechanism because RdbLoader is not using transactions.
695
+ if (coordinator_index_ == unique_shard_id_ &&
696
+ ServerState::tlocal()->gstate() != GlobalState::LOADING) {
697
+ DVLOG(2) << "Inline scheduling a transaction";
698
schedule_cb();
699
} else {
700
shard_set->Add(unique_shard_id_, std::move(schedule_cb)); // serves as a barrier.
0 commit comments