Cannot get Versioned Settings to work
Hi,
We are trying to move all our TeamCity configuration into GitHub but have so fair only encountered errors coming from jgit
Steps to reproduce:
- create a new empty repository on github (with README file)
- TeamCity -> Administration -> Root Project -> VCS Roots -> New VCS root with new repo -> Test Connection -> Success
- TeamCity -> Administration -> Root Project -> Versioned Settings ->
-- Enable Sync
-- Configure VCS root created above
-- Use "always use current settings"
-- Settings format: xml
-- Apply -> Error
-- Try clicking "Commit current project settings..." -> Error
I've tried:
- both VCS connection methods (https/ssh).
- deleting everything and starting over.
- clearing the TeamCity vcs caches in the Diagnostics view.
- upgrading TeamCity to the latest version
I don't know what else to try and use this feature and hope someone can tell me where I am going wrong.
Cheers
Oliver
== Error when trying to use github ssh url ==
[2018-05-31 19:11:52,435] WARN [sister - Save 1] - ggers.vcs.git.GitCommitSupport - Error while pushing a commit, root "teamcity-configuration2" {instance id=803, parent internal id=30, parent id=TeamcityConfiguration2, description: "git@github.com:FakeOrganization/teamcity-configuration.git#refs/heads/master"}, revision AnyObjectId[f11382af4f269a54bc84654ff6b80ad1f6d3654c], destination refs/heads/master
org.eclipse.jgit.errors.TransportException: git@github.com:FakeOrganization/teamcity-configuration.git: Short read of block.
at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:225)
at org.eclipse.jgit.transport.BasePackPushConnection.push(BasePackPushConnection.java:160)
at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:165)
at org.eclipse.jgit.transport.Transport.push(Transport.java:1200)
at org.eclipse.jgit.transport.Transport.push(Transport.java:1246)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCommitSupport$GitCommitPatchBuilder.commit(GitCommitSupport.java:171)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DirectoryBasedTransactionCommitter.doCommit(DirectoryBasedTransactionCommitter.java:162)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DirectoryBasedTransactionCommitter.commit(DirectoryBasedTransactionCommitter.java:169)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.commit(DelayedCommitPerSettingsRootStrategy.java:55)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.run(DelayedCommitPerSettingsRootStrategy.java:223)
at jetbrains.buildServer.serverSide.impl.versionedSettings.ConfigChangesCommitterImpl.onPersist(ConfigChangesCommitterImpl.java:90)
at jetbrains.buildServer.serverSide.impl.versionedSettings.ConfigChangesCommitterImpl.onPersist(ConfigChangesCommitterImpl.java:36)
at jetbrains.buildServer.serverSide.impl.projects.ConfigurationPersister.notifyConfigChangesListener(ConfigurationPersister.java:125)
at jetbrains.buildServer.serverSide.impl.projects.ConfigurationPersister.saveEntity(ConfigurationPersister.java:57)
at jetbrains.buildServer.serverSide.impl.projects.ConfigurationPersister.saveProjectAndInnerEntities(ConfigurationPersister.java:60)
at jetbrains.buildServer.serverSide.impl.projects.ProjectImpl.doPersistInternally(ProjectImpl.java:727)
at jetbrains.buildServer.serverSide.impl.projects.ProjectImpl.access$700(ProjectImpl.java:548)
at jetbrains.buildServer.serverSide.impl.projects.ProjectImpl$13$1.run(ProjectImpl.java:5)
at jetbrains.buildServer.serverSide.impl.projects.PersistTaskImpl.run(PersistTaskImpl.java:34)
at jetbrains.buildServer.serverSide.impl.projects.BackgroundPersisterImpl$RunTask.lambda$run$0(BackgroundPersisterImpl.java:4)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.serverSide.impl.projects.BackgroundPersisterImpl$RunTask.run(BackgroundPersisterImpl.java:13)
at jetbrains.buildServer.configuration.FilesWatcher.runActionWithDisabledObserver(FilesWatcher.java:229)
at jetbrains.buildServer.serverSide.impl.projects.BackgroundPersisterImpl$FlushOnDisk.run(BackgroundPersisterImpl.java:44)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:71)
at jetbrains.buildServer.util.ExceptionUtil$1.run(ExceptionUtil.java:41)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.EOFException: Short read of block.
at org.eclipse.jgit.util.IO.readFully(IO.java:248)
at org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186)
at org.eclipse.jgit.transport.SideBandInputStream.needDataPacket(SideBandInputStream.java:158)
at org.eclipse.jgit.transport.SideBandInputStream.read(SideBandInputStream.java:140)
at org.eclipse.jgit.util.IO.readFully(IO.java:246)
at org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186)
at org.eclipse.jgit.transport.PacketLineIn.readString(PacketLineIn.java:138)
at org.eclipse.jgit.transport.BasePackPushConnection.readStringLongTimeout(BasePackPushConnection.java:381)
at org.eclipse.jgit.transport.BasePackPushConnection.readStatusReport(BasePackPushConnection.java:322)
at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:208)
... 32 more
== Error when trying to use github https url ==
[2018-05-31 18:56:48,415] WARN [uled executor 3] - ggers.vcs.git.GitCommitSupport - Error while pushing a commit, root "teamcity-configuration2" {instance id=799, parent internal id=30, parent id=TeamcityConfiguration2, description: "https://github.com/FakeOrganization/teamcity-configuration#refs/heads/master"}, revision AnyObjectId[86014824700bf9b3282885c136e5b884f27eceeb], destination refs/heads/master
org.eclipse.jgit.errors.TransportException: https://github.com/FakeOrganization/teamcity-configuration: Starting read stage without written request data pending is not supported
at org.eclipse.jgit.transport.TransportHttp$MultiRequestService.execute(TransportHttp.java:979)
at org.eclipse.jgit.transport.TransportHttp$Service$HttpExecuteStream.read(TransportHttp.java:913)
at org.eclipse.jgit.util.io.UnionInputStream.read(UnionInputStream.java:145)
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at org.eclipse.jgit.util.io.TimeoutInputStream.read(TimeoutInputStream.java:112)
at org.eclipse.jgit.util.IO.readFully(IO.java:246)
at org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186)
at org.eclipse.jgit.transport.SideBandInputStream.needDataPacket(SideBandInputStream.java:158)
at org.eclipse.jgit.transport.SideBandInputStream.read(SideBandInputStream.java:140)
at org.eclipse.jgit.util.IO.readFully(IO.java:246)
at org.eclipse.jgit.transport.PacketLineIn.readLength(PacketLineIn.java:186)
at org.eclipse.jgit.transport.PacketLineIn.readString(PacketLineIn.java:138)
at org.eclipse.jgit.transport.BasePackPushConnection.readStringLongTimeout(BasePackPushConnection.java:381)
at org.eclipse.jgit.transport.BasePackPushConnection.readStatusReport(BasePackPushConnection.java:322)
at org.eclipse.jgit.transport.BasePackPushConnection.doPush(BasePackPushConnection.java:208)
at org.eclipse.jgit.transport.TransportHttp$SmartHttpPushConnection.doPush(TransportHttp.java:817)
at org.eclipse.jgit.transport.BasePackPushConnection.push(BasePackPushConnection.java:160)
at org.eclipse.jgit.transport.PushProcess.execute(PushProcess.java:165)
at org.eclipse.jgit.transport.Transport.push(Transport.java:1200)
at org.eclipse.jgit.transport.Transport.push(Transport.java:1246)
at jetbrains.buildServer.buildTriggers.vcs.git.GitCommitSupport$GitCommitPatchBuilder.commit(GitCommitSupport.java:171)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DirectoryBasedTransactionCommitter.doCommit(DirectoryBasedTransactionCommitter.java:162)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DirectoryBasedTransactionCommitter.commit(DirectoryBasedTransactionCommitter.java:169)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.commit(DelayedCommitPerSettingsRootStrategy.java:55)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy.access$200(DelayedCommitPerSettingsRootStrategy.java:67)
at jetbrains.buildServer.serverSide.impl.versionedSettings.DelayedCommitPerSettingsRootStrategy$Commit.run(DelayedCommitPerSettingsRootStrategy.java:6)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at jetbrains.buildServer.util.executors.TeamCityScheduledThreadPoolExecutor$RunnableScheduledFutureWrapper.run(TeamCityScheduledThreadPoolExecutor.java:77)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Version:
2017.2.4 (build 51228)
Java Settings
Java version: 1.8.0_161
Java VM info: Java HotSpot(TM) Server VM (32 bit)
Java Home path: C:\dev\TeamCity\TeamCity2017.2\jre
Server: Apache Tomcat/8.5.23
JVM arguments:
-Djava.util.logging.config.file=C:\dev\TeamCity\TeamCity2017.2\bin\..\conf\logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Xrs -Xmx1g -Dteamcity.configuration.path=../conf/teamcity-startup.properties -Dlog4j.configuration=file:../conf/teamcity-server-log4j.xml -Dteamcity_logs=C:\dev\TeamCity\TeamCity2017.2\bin\..\logs -Dcatalina.base=C:\dev\TeamCity\TeamCity2017.2\bin\.. -Dcatalina.home=C:\dev\TeamCity\TeamCity2017.2\bin\.. -Djava.io.tmpdir=C:\dev\TeamCity\TeamCity2017.2\bin\..\temp
Please sign in to leave a comment.
Hi Oliver,
did you configure credentials allowing push to this repository in the git VCS root settings?
Hi Dimitry,
Thanks for the response.
This is what I've done:
- Under the <Root Project>, Connections, I have configured a connection to GitHub.
- Under the <Root Project>, configured a VCS root using the above connection feature (connection test is successful).
- Under the <Root Project>, configured Versioned Settings using the above VCS root
As far as I can tell, the OAuth integration has full read/write access to all our private repos.
Anything else you can suggest we try?
Cheers
Oliver
Please check if it works if you switch to ssh protocol in git VCS root settings.
Hi thanks,
We stopped using the "Connection" to github feature and simply set up deploy keys in github and are using those now which seems to work.
Cheers
Oliver