tree ffab9680b82359236c68aac78c633fa8895f9350
parent 7fdfbfac5fa62640548990ee25284ee6dd4af613
author Ajay Gupta <ajagup@qti.qualcomm.com> 1793700404 +0530
committer Matthias Sohn <matthias.sohn@sap.com> 1793966371 +0100

PackDirectory: Handle errors in getPack() like other lookups

getPack(), which backs ObjectDirectory.has() and the restore of
preserved packs, logged every IOException from Pack.hasObject() as a
warning with a stack trace and removed the pack from the list. All other
lookups (resolve, open, getSize, selectRepresentation) pass the error to
handlePackError(), which since 772ee0e5f ("Log pruned packfiles as debug
and not warn logs") and b994eb49a ("Do not log packfiles moved away or
pruned") only logs a pack that was deleted at debug level.

A pack disappearing is common for the preserved directory: an external
gc or GC with prunePreserved removes preserved/ while the pack list
still holds the previous packs. When the index of such a pack is no
longer in memory, e.g. after core.packedIndexGitUseStrongRefs=false let
it be cleared, the next object lookup miss reopens the deleted index
and logged "Unable to read packfile .../preserved/...". On a busy server
this was tens of thousands of warnings a day.

Use handlePackError() in getPack() too, so that it logs the same way
as the other lookups: deleted packs at debug level, corrupt packs and
stale file handles as warnings, other errors as errors with exponential
backoff. Which packs leave the list is effectively unchanged: a failed
index load already marks the pack invalid, so a pack that is not
removed here is dropped on the next rescan of the directory.

Remove the now unused unableToReadPackfile message.

Change-Id: I6921d33270234b1af0c58fb8b01edad57918e980
Signed-off-by: Ajay Gupta <ajagup@qti.qualcomm.com>
