从 gerrit 克隆存储库有时会失败



我们配置了一个 jenkins 作业来从 gerrit 获取更改以执行 CI,有时此作业会随机失败,无法在 gerrit 服务器上执行 Git 操作,例如克隆或获取。gerrit服务器由带有PGBouncer的postgres数据库支持。服务器的 SSHD 日志具有以下日志消息。

[2018-05-19 17:15:27,405 +0000] 7f660610 username a/1000024 git-upload-pack./sampleproject 1ms 300002ms killed

应用程序日志具有以下堆栈跟踪,该跟踪来自jgit或lucene。

[2018-05-19 17:15:27,636] [SSH git-upload-pack '/sampleproject' (username)] WARN  com.google.gerrit.server.git.SearchingChangeCacheImpl : Cannot fetch changes for sampleproject
2018-05-1913:15:28.700
java.util.concurrent.ExecutionException: com.google.gwtorm.server.OrmException: interrupted
2018-05-1913:15:28.702
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:476)
2018-05-1913:15:28.703
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:435)
2018-05-1913:15:28.721
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
2018-05-1913:15:28.723
at com.google.common.util.concurrent.Uninterruptibles.getUninterruptibly(Uninterruptibles.java:143)
2018-05-1913:15:28.725
at com.google.common.cache.LocalCache$Segment.getAndRecordStats(LocalCache.java:2352)
2018-05-1913:15:28.727
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2324)
2018-05-1913:15:28.728
at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2286)
2018-05-1913:15:28.729
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2201)
2018-05-1913:15:28.731
at com.google.common.cache.LocalCache.get(LocalCache.java:3953)
2018-05-1913:15:28.733
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3957)
2018-05-1913:15:28.734
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4875)
2018-05-1913:15:28.736
at com.google.gerrit.server.git.SearchingChangeCacheImpl.getChangeData(SearchingChangeCacheImpl.java:118)
2018-05-1913:15:28.737
at com.google.gerrit.server.git.VisibleRefFilter.visibleChangesBySearch(VisibleRefFilter.java:236)
2018-05-1913:15:28.739
at com.google.gerrit.server.git.VisibleRefFilter.visible(VisibleRefFilter.java:216)
2018-05-1913:15:28.760
at com.google.gerrit.server.git.VisibleRefFilter.filter(VisibleRefFilter.java:126)
2018-05-1913:15:28.762
at com.google.gerrit.server.git.VisibleRefFilter.filter(VisibleRefFilter.java:208)
2018-05-1913:15:28.763
at com.google.gerrit.server.git.VisibleRefFilter.getAdvertisedRefs(VisibleRefFilter.java:197)
2018-05-1913:15:28.764
at org.eclipse.jgit.transport.AbstractAdvertiseRefsHook.advertiseRefs(AbstractAdvertiseRefsHook.java:62)
2018-05-1913:15:28.766
at org.eclipse.jgit.transport.UploadPack.sendAdvertisedRefs(UploadPack.java:870)
2018-05-1913:15:28.768
at org.eclipse.jgit.transport.UploadPack.service(UploadPack.java:718)
2018-05-1913:15:28.769
at org.eclipse.jgit.transport.UploadPack.upload(UploadPack.java:667)
2018-05-1913:15:28.771
at com.google.gerrit.sshd.commands.Upload.runImpl(Upload.java:92)
2018-05-1913:15:28.772
at com.google.gerrit.sshd.AbstractGitCommand.service(AbstractGitCommand.java:101)
2018-05-1913:15:28.777
at com.google.gerrit.sshd.AbstractGitCommand.access$000(AbstractGitCommand.java:32)
2018-05-1913:15:28.779
at com.google.gerrit.sshd.AbstractGitCommand$1.run(AbstractGitCommand.java:70)
2018-05-1913:15:28.780
at com.google.gerrit.sshd.BaseCommand$TaskThunk.run(BaseCommand.java:442)
2018-05-1913:15:28.782
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
2018-05-1913:15:28.783
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
2018-05-1913:15:28.784
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
2018-05-1913:15:28.786
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
2018-05-1913:15:28.788
at com.google.gerrit.server.git.WorkQueue$Task.run(WorkQueue.java:417)
2018-05-1913:15:28.790
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
2018-05-1913:15:28.791
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
2018-05-1913:15:28.793
at java.lang.Thread.run(Thread.java:748)
2018-05-1913:15:28.795
Caused by: com.google.gwtorm.server.OrmException: interrupted
2018-05-1913:15:28.796
at com.google.gerrit.lucene.LuceneChangeIndex$QuerySource.read(LuceneChangeIndex.java:317)
2018-05-1913:15:28.797
at com.google.gerrit.server.index.change.IndexedChangeQuery.read(IndexedChangeQuery.java:90)
2018-05-1913:15:28.799
at com.google.gerrit.server.query.QueryProcessor.query(QueryProcessor.java:191)
2018-05-1913:15:28.801
at com.google.gerrit.server.query.QueryProcessor.query(QueryProcessor.java:139)
2018-05-1913:15:28.802
at com.google.gerrit.server.query.QueryProcessor.query(QueryProcessor.java:122)
2018-05-1913:15:28.803
at com.google.gerrit.server.query.InternalQuery.query(InternalQuery.java:71)
2018-05-1913:15:28.805
at com.google.gerrit.server.query.change.InternalChangeQuery.byProject(InternalChangeQuery.java:144)
2018-05-1913:15:28.806
at com.google.gerrit.server.git.SearchingChangeCacheImpl$Loader.load(SearchingChangeCacheImpl.java:153)
2018-05-1913:15:28.808
at com.google.gerrit.server.git.SearchingChangeCacheImpl$Loader.load(SearchingChangeCacheImpl.java:139)
2018-05-1913:15:28.810
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3542)
2018-05-1913:15:28.811
at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2323)
2018-05-1913:15:28.813
... 28 more

以前有人遇到过这个问题吗?或者我们可以做些什么来识别问题?

我们在与Gerrit的ssh连接方面也遇到了一些问题。那是前段时间,所以我不记得确切的错误了。但是我们使用了相当旧的Gerrit版本(2.10或其他版本(。

我们的解决方案是使用 https 协议而不是 ssh 进行远程 git 操作。

最新更新