[ReceiveCommits-188[java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask@7e6fad[Not completed, task = java.util.concurrent.Executors$RunnableAdapter@7af15981[Wrapped task = com.google.gerrit.server.logging.LoggingContextAwareRunnable@395a7b9c]]]-for-SSH git-receive-pack //device/xiaomi/tanzanite (p-wushijian)] WARN org.eclipse.jgit.internal.storage.file.PackDirectory : Pack file /home/work/repositories/miui/All-Projects.git/objects/pack/pack-eba25844d351f0109e33ef18ef20b498e1110c15.pack was deleted, removing it from pack list
java.io.FileNotFoundException: /home/work/repositories/miui/All-Projects.git/objects/pack/pack-eba25844d351f0109e33ef18ef20b498e1110c15.pack (No such file or directory)
at java.base/java.io.RandomAccessFile.open0(Native Method)
at java.base/java.io.RandomAccessFile.open(RandomAccessFile.java:346)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:260)
at java.base/java.io.RandomAccessFile.<init>(RandomAccessFile.java:215)
at org.eclipse.jgit.internal.storage.file.Pack.doOpen(Pack.java:646)
at org.eclipse.jgit.internal.storage.file.Pack.beginWindowCache(Pack.java:626)
at org.eclipse.jgit.internal.storage.file.WindowCache.load(WindowCache.java:510)
at org.eclipse.jgit.internal.storage.file.WindowCache.getOrLoad(WindowCache.java:602)
at org.eclipse.jgit.internal.storage.file.WindowCache.get(WindowCache.java:385)
at org.eclipse.jgit.internal.storage.file.WindowCursor.pin(WindowCursor.java:335)
at org.eclipse.jgit.internal.storage.file.WindowCursor.copy(WindowCursor.java:234)
at org.eclipse.jgit.internal.storage.file.Pack.readFully(Pack.java:602)
at org.eclipse.jgit.internal.storage.file.Pack.load(Pack.java:785)
at org.eclipse.jgit.internal.storage.file.Pack.get(Pack.java:273)
at org.eclipse.jgit.internal.storage.file.PackDirectory.open(PackDirectory.java:219)
at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openPackedObject(ObjectDirectory.java:420)
at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openPackedFromSelfOrAlternate(ObjectDirectory.java:384)
at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObjectWithoutRestoring(ObjectDirectory.java:375)
at org.eclipse.jgit.internal.storage.file.ObjectDirectory.openObject(ObjectDirectory.java:360)
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:140)
at com.google.gerrit.server.notedb.IntBlob.parse(IntBlob.java:66)
at com.google.gerrit.server.notedb.IntBlob.parse(IntBlob.java:56)
at com.google.gerrit.server.notedb.RepoSequence.acquire(RepoSequence.java:271)
at com.google.gerrit.server.notedb.RepoSequence.lambda$next$1(RepoSequence.java:227)
at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78)
at com.github.rholder.retry.Retryer.call(Retryer.java:160)
at com.google.gerrit.server.notedb.RepoSequence.next(RepoSequence.java:221)
at com.google.gerrit.server.notedb.Sequences.nextChangeIds(Sequences.java:141)
at com.google.gerrit.server.git.receive.ReceiveCommits.selectNewAndReplacedChangesFromMagicBranch(ReceiveCommits.java:2536)
at com.google.gerrit.server.git.receive.ReceiveCommits.processCommandsUnsafe(ReceiveCommits.java:788)
at com.google.gerrit.server.git.receive.ReceiveCommits.processCommands(ReceiveCommits.java:684)
at com.google.gerrit.server.git.receive.AsyncReceiveCommits.lambda$preReceive$2(AsyncReceiveCommits.java:395)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264).
The logs may suggest that a gc was runing when gerrit aquired the change number and after the gc, the refs/sequences/changes pointed to an old blob( the history of refs/sequences/changes supports).
Maybe a solution of this problem is to do some check between change number in memory and the refs/sequences/changes pointed at to prevent falling back.
The duplication of change numbers makes a lot of problems like bad change queries.
Look forward to all replies.