[
https://issues.apache.org/jira/browse/HBASE-17992?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16488338#comment-16488338
]
Bo Cui commented on HBASE-17992:
--------------------------------
i looked at the latest code.
it has not existed in 1.0.2 and 1.3.1.
{code:java}
See HBASE-16464{code}
{code:java}
// code placeholder
List<String> getSnapshotsInProgress() throws IOException {
List<String> snapshotInProgress = Lists.newArrayList();
// only add those files to the cache, but not to the known snapshots
Path snapshotTmpDir = new Path(snapshotDir,
SnapshotDescriptionUtils.SNAPSHOT_TMP_DIR_NAME);
// only add those files to the cache, but not to the known snapshots
FileStatus[] running = FSUtils.listStatus(fs, snapshotTmpDir);
if (running != null) {
for (FileStatus run : running) {
try {
snapshotInProgress.addAll(fileInspector.filesUnderSnapshot(run.getPath()));
} catch (CorruptedSnapshotException e) {
// See HBASE-16464
if (e.getCause() instanceof FileNotFoundException) {
// If the snapshot is not in progress, we will delete it
if (!fs.exists(new Path(run.getPath(),
SnapshotDescriptionUtils.SNAPSHOT_IN_PROGRESS))) {
fs.delete(run.getPath(), true);
LOG.warn("delete the " + run.getPath() + " due to exception:", e.getCause());
}
} else {
throw e;
}
}
}
}
return snapshotInProgress;
}
{code}
> The snapShot TimeoutException causes the cleanerChore thread to fail to
> complete the archive correctly
> ------------------------------------------------------------------------------------------------------
>
> Key: HBASE-17992
> URL: https://issues.apache.org/jira/browse/HBASE-17992
> Project: HBase
> Issue Type: Bug
> Components: snapshots
> Affects Versions: 0.98.10, 1.3.0
> Reporter: Bo Cui
> Priority: Major
> Attachments: hbase-17992-0.98.patch, hbase-17992-1.3.patch,
> hbase-17992-master.patch, hbase-17992.patch
>
>
> The problem is that when the snapshot occurs TimeoutException or other
> Exceptions, there is no correct delete /hbase/.hbase-snapshot/tmp, which
> causes the cleanerChore to fail to complete the archive correctly.
> Modifying the configuration parameter (hbase.snapshot.master.timeout.millis =
> 600000) only reduces the probability of the problem occurring.
> So the solution to the problem is: multi-Threaded exceptions or
> TimeoutExceptions, the Main-thread must wait until all the tasks are finished
> or canceled, the Main-thread can be cleared
> /hbase/.hbase-snapshot/tmp/snapshotName.Otherwise the task is likely to write
> /hbase/.hbase-snapshot/tmp/snapshotName/region - mainfest
> The problem exists in disabledTableSnapshot and enabledTableSnapshot, because
> I'm currently using the disabledTableSnapshot, so I provide the patch of
> disabledTableSnapshot
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)