DBImpl::IngestExternalFile() should grab mutex when releasing file number in failure case (#4189)
Summary:
995fcf7573
has a bug: ReleaseFileNumberFromPendingOutputs() added is not protected by the DB mutex. Fix it by grabbing the lock for this operation.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4189
Differential Revision: D9015447
Pulled By: siying
fbshipit-source-id: b8506e09a96c3f95a6fe32b5ca5fcdb9bee88937
This commit is contained in:
parent
516faa0fa0
commit
976212ede4
@ -2912,6 +2912,7 @@ Status DBImpl::IngestExternalFile(
|
|||||||
status = ingestion_job.Prepare(external_files, super_version);
|
status = ingestion_job.Prepare(external_files, super_version);
|
||||||
CleanupSuperVersion(super_version);
|
CleanupSuperVersion(super_version);
|
||||||
if (!status.ok()) {
|
if (!status.ok()) {
|
||||||
|
InstrumentedMutexLock l(&mutex_);
|
||||||
ReleaseFileNumberFromPendingOutputs(pending_output_elem);
|
ReleaseFileNumberFromPendingOutputs(pending_output_elem);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user