Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fail restore if snapshot is corrupted #6938

Merged
merged 1 commit into from Jul 21, 2014
Merged

Conversation

s1monw
Copy link
Contributor

@s1monw s1monw commented Jul 21, 2014

today if a snapshot is corrupted the restore operation
never terminates. Yet, if the snapshot is corrupted there
is no way to restore it anyway. If such a snapshot is restored
today the only way to cancle it is to delete the entire index which
might cause dataloss. This commit also fixes an issue in InternalEngine
where a deadlock can occur if a corruption is detected during flush
since the InternalEngine#snapshotIndex aqcuires a topLevel read lock
which prevents closing the engine.

@s1monw s1monw added v1.4.0 and removed v1.4.0 labels Jul 21, 2014
@@ -107,6 +107,27 @@ public Directory directory() {
return directory;
}

/**
* Returns the last committed segments info for the given store
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/the given/this/ ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

@kimchy
Copy link
Member

kimchy commented Jul 21, 2014

LGTM, except for the writeLock comment and taking flush outside of it

@s1monw
Copy link
Contributor Author

s1monw commented Jul 21, 2014

@jpountz @kimchy pushed another commit and incorporated your feedback

@jpountz
Copy link
Contributor

jpountz commented Jul 21, 2014

LGTM

1 similar comment
@kimchy
Copy link
Member

kimchy commented Jul 21, 2014

LGTM

today if a snapshot is corrupted the restore operation
never terminates. Yet, if the snapshot is corrupted there
is no way to restore it anyway. If such a snapshot is restored
today the only way to cancle it is to delete the entire index which
might cause dataloss. This commit also fixes an issue in InternalEngine
where a deadlock can occur if a corruption is detected during flush
since the InternalEngine#snapshotIndex aqcuires a topLevel read lock
which prevents closing the engine.

Closes elastic#6938
@s1monw s1monw merged commit e730c76 into elastic:master Jul 21, 2014
@s1monw s1monw deleted the corrupt_snapshot branch July 21, 2014 14:18
s1monw added a commit that referenced this pull request Jul 21, 2014
today if a snapshot is corrupted the restore operation
never terminates. Yet, if the snapshot is corrupted there
is no way to restore it anyway. If such a snapshot is restored
today the only way to cancle it is to delete the entire index which
might cause dataloss. This commit also fixes an issue in InternalEngine
where a deadlock can occur if a corruption is detected during flush
since the InternalEngine#snapshotIndex aqcuires a topLevel read lock
which prevents closing the engine.

Closes #6938
s1monw added a commit that referenced this pull request Jul 21, 2014
today if a snapshot is corrupted the restore operation
never terminates. Yet, if the snapshot is corrupted there
is no way to restore it anyway. If such a snapshot is restored
today the only way to cancle it is to delete the entire index which
might cause dataloss. This commit also fixes an issue in InternalEngine
where a deadlock can occur if a corruption is detected during flush
since the InternalEngine#snapshotIndex aqcuires a topLevel read lock
which prevents closing the engine.

Closes #6938
@clintongormley clintongormley added the :Distributed/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs label Jun 7, 2015
@clintongormley clintongormley changed the title [RESTORE] Fail restore if snapshot is corrupted Fail restore if snapshot is corrupted Jun 7, 2015
mute pushed a commit to mute/elasticsearch that referenced this pull request Jul 29, 2015
today if a snapshot is corrupted the restore operation
never terminates. Yet, if the snapshot is corrupted there
is no way to restore it anyway. If such a snapshot is restored
today the only way to cancle it is to delete the entire index which
might cause dataloss. This commit also fixes an issue in InternalEngine
where a deadlock can occur if a corruption is detected during flush
since the InternalEngine#snapshotIndex aqcuires a topLevel read lock
which prevents closing the engine.

Closes elastic#6938
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocker >bug :Distributed/Snapshot/Restore Anything directly related to the `_snapshot/*` APIs v1.3.0 v2.0.0-beta1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants