]> source.dussan.org Git - jgit.git/commit
Refresh 'objects' dir and retry if a loose object is not found 14/197714/6
authorKaushik Lingarkar <quic_kaushikl@quicinc.com>
Thu, 12 Jan 2023 05:25:30 +0000 (21:25 -0800)
committerMatthias Sohn <matthias.sohn@sap.com>
Fri, 13 Jan 2023 17:44:35 +0000 (18:44 +0100)
commitfed1a54935c0180e95804d42c1700b1f1819de3d
treedabe3b8d33e0eaac0a1ad7eb47e0497e91e0ed03
parent82b5aaf7e3e3f881056dd2d4486e02537b0493da
Refresh 'objects' dir and retry if a loose object is not found

A new loose object may not be immediately visible on a NFS
client if it was created on another client. Refreshing the
'objects' dir and trying again can help work around the NFS
behavior.

Here's an E2E problem that this change can help fix. Consider
a Gerrit multi-primary setup with repositories based on NFS.
Add a new patch-set to an existing change and then immediately
fetch the new patch-set of that change. If the fetch is handled
by a Gerrit primary different that the one which created the
patch-set, then we sometimes run into a MissingObjectException
that causes the fetch to fail.

Bug: 581317
Change-Id: Iccc6676c68ef13a1e8b2ff52b3eeca790a89a13d
Signed-off-by: Kaushik Lingarkar <quic_kaushikl@quicinc.com>
Documentation/config-options.md
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/LooseObjects.java
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/file/ObjectDirectory.java