Merge changes I368af61a,I2400fe5f
* changes: Remove pack from list when file handle is stale Lower log level to warn for handled pack errors
This commit is contained in:
commit
7e0ebb8e29
|
@ -394,6 +394,7 @@ packfileCorruptionDetected=Packfile corruption detected: {0}
|
||||||
packFileInvalid=Pack file invalid: {0}
|
packFileInvalid=Pack file invalid: {0}
|
||||||
packfileIsTruncated=Packfile {0} is truncated.
|
packfileIsTruncated=Packfile {0} is truncated.
|
||||||
packfileIsTruncatedNoParam=Packfile is truncated.
|
packfileIsTruncatedNoParam=Packfile is truncated.
|
||||||
|
packHandleIsStale=Pack file {0} handle is stale, removing it from pack list
|
||||||
packHasUnresolvedDeltas=pack has unresolved deltas
|
packHasUnresolvedDeltas=pack has unresolved deltas
|
||||||
packingCancelledDuringObjectsWriting=Packing cancelled during objects writing
|
packingCancelledDuringObjectsWriting=Packing cancelled during objects writing
|
||||||
packObjectCountMismatch=Pack object count mismatch: pack {0} index {1}: {2}
|
packObjectCountMismatch=Pack object count mismatch: pack {0} index {1}: {2}
|
||||||
|
|
|
@ -453,6 +453,7 @@ public static JGitText get() {
|
||||||
/***/ public String packFileInvalid;
|
/***/ public String packFileInvalid;
|
||||||
/***/ public String packfileIsTruncated;
|
/***/ public String packfileIsTruncated;
|
||||||
/***/ public String packfileIsTruncatedNoParam;
|
/***/ public String packfileIsTruncatedNoParam;
|
||||||
|
/***/ public String packHandleIsStale;
|
||||||
/***/ public String packHasUnresolvedDeltas;
|
/***/ public String packHasUnresolvedDeltas;
|
||||||
/***/ public String packingCancelledDuringObjectsWriting;
|
/***/ public String packingCancelledDuringObjectsWriting;
|
||||||
/***/ public String packObjectCountMismatch;
|
/***/ public String packObjectCountMismatch;
|
||||||
|
|
|
@ -114,6 +114,8 @@ public class ObjectDirectory extends FileObjectDatabase {
|
||||||
/** Maximum number of candidates offered as resolutions of abbreviation. */
|
/** Maximum number of candidates offered as resolutions of abbreviation. */
|
||||||
private static final int RESOLVE_ABBREV_LIMIT = 256;
|
private static final int RESOLVE_ABBREV_LIMIT = 256;
|
||||||
|
|
||||||
|
private static final String STALE_FILE_HANDLE_MSG = "stale file handle"; //$NON-NLS-1$
|
||||||
|
|
||||||
private final Config config;
|
private final Config config;
|
||||||
|
|
||||||
private final File objects;
|
private final File objects;
|
||||||
|
@ -554,22 +556,35 @@ void selectObjectRepresentation(PackWriter packer, ObjectToPack otp,
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handlePackError(IOException e, PackFile p) {
|
private void handlePackError(IOException e, PackFile p) {
|
||||||
String tmpl;
|
String warnTmpl = null;
|
||||||
if ((e instanceof CorruptObjectException)
|
if ((e instanceof CorruptObjectException)
|
||||||
|| (e instanceof PackInvalidException)) {
|
|| (e instanceof PackInvalidException)) {
|
||||||
tmpl = JGitText.get().corruptPack;
|
warnTmpl = JGitText.get().corruptPack;
|
||||||
// Assume the pack is corrupted, and remove it from the list.
|
// Assume the pack is corrupted, and remove it from the list.
|
||||||
removePack(p);
|
removePack(p);
|
||||||
} else if (e instanceof FileNotFoundException) {
|
} else if (e instanceof FileNotFoundException) {
|
||||||
tmpl = JGitText.get().packWasDeleted;
|
warnTmpl = JGitText.get().packWasDeleted;
|
||||||
removePack(p);
|
removePack(p);
|
||||||
|
} else if (e.getMessage() != null
|
||||||
|
&& e.getMessage().toLowerCase().contains(STALE_FILE_HANDLE_MSG)) {
|
||||||
|
warnTmpl = JGitText.get().packHandleIsStale;
|
||||||
|
removePack(p);
|
||||||
|
}
|
||||||
|
if (warnTmpl != null) {
|
||||||
|
if (LOG.isDebugEnabled()) {
|
||||||
|
LOG.debug(MessageFormat.format(warnTmpl,
|
||||||
|
p.getPackFile().getAbsolutePath()), e);
|
||||||
|
} else {
|
||||||
|
LOG.warn(MessageFormat.format(warnTmpl,
|
||||||
|
p.getPackFile().getAbsolutePath()));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
tmpl = JGitText.get().exceptionWhileReadingPack;
|
|
||||||
// Don't remove the pack from the list, as the error may be
|
// Don't remove the pack from the list, as the error may be
|
||||||
// transient.
|
// transient.
|
||||||
|
LOG.error(MessageFormat.format(
|
||||||
|
JGitText.get().exceptionWhileReadingPack, p.getPackFile()
|
||||||
|
.getAbsolutePath()), e);
|
||||||
}
|
}
|
||||||
LOG.error(MessageFormat.format(tmpl,
|
|
||||||
p.getPackFile().getAbsolutePath()), e);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue