diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-01-14 12:43:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-14 12:43:41 +0100 |
commit | 6564d646f807bb23e725ffe9310e030259eeedc6 (patch) | |
tree | 7c84fd64a6ace5616f1d796b80e02c2e2f67ca04 | |
parent | c1084399767a5aaf504229ac9c485c696a0832d3 (diff) | |
parent | a870ba17003bb5c4b950fb3f2bee88fb2af80146 (diff) |
Merge pull request #16045 from vespa-engine/balder/sync-executor-to-guarantee-progress
Sync the executor to ensure progress is made when syncing to
-rw-r--r-- | searchlib/src/vespa/searchlib/transactionlog/domain.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp index 8dcca2c7b89..1fd84305d4b 100644 --- a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp +++ b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp @@ -213,6 +213,11 @@ Domain::triggerSyncNow(std::unique_ptr<vespalib::Executor::Task> done_sync_task) std::unique_lock guard(_currentChunkMonitor); commitAndTransferResponses(guard); } + if (done_sync_task) { + // Need to protect against being called from the _singleCommitter as that will cause a deadlock + // That is done from Domain::commitChunk.lamdba->Domain::doCommit()->optionallyRotateFile->triggerSyncNow({}) + _singleCommitter->sync(); + } std::unique_lock guard(_syncMonitor); if (done_sync_task) { _done_sync_tasks.push_back(std::move(done_sync_task)); |