diff --git a/services/backup/src/Reactors/server/CreateNewBackupReactor.cpp b/services/backup/src/Reactors/server/CreateNewBackupReactor.cpp --- a/services/backup/src/Reactors/server/CreateNewBackupReactor.cpp +++ b/services/backup/src/Reactors/server/CreateNewBackupReactor.cpp @@ -85,14 +85,13 @@ } this->putReactor->scheduleSendingDataChunk(std::make_unique("")); std::unique_lock lock2(this->blobPutDoneCVMutex); - if (this->putReactor->getStatusHolder()->state == ReactorState::DONE && - !this->putReactor->getStatusHolder()->getStatus().ok()) { - throw std::runtime_error( - this->putReactor->getStatusHolder()->getStatus().error_message()); - } if (this->putReactor->getStatusHolder()->state != ReactorState::DONE) { this->blobPutDoneCV.wait(lock2); - } else if (!this->putReactor->getStatusHolder()->getStatus().ok()) { + } + if (this->putReactor->getStatusHolder()->state != ReactorState::DONE) { + throw std::runtime_error("put reactor has not been terminated properly"); + } + if (!this->putReactor->getStatusHolder()->getStatus().ok()) { throw std::runtime_error( this->putReactor->getStatusHolder()->getStatus().error_message()); }