我们有一个jenkins工作被配置为从gerrit获取更改来执行CI,有时这个工作随机失败以执行Git操作,就像在gerrit服务器上克隆或获取一样。 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
以前有人遇到过这个问题吗?或者我们可以做些什么来确定问题?
答案 0 :(得分:1)
我们还遇到了与Gerrit的ssh连接的一些问题。这是一段时间以前,所以我不记得确切的错误。但我们使用了Gerrit的旧版本(2.10或其他)。
我们的解决方案是使用https协议代替ssh进行远程git操作。