Linux:代理端签出失败 - Perforce密码(P4PASSWD)无效或未设置

时间:2017-06-22 21:34:57

标签: teamcity perforce

使用Team City 2017.1

由于以下错误,我无法将代理端结帐与我的Ubuntu 14.04构建代理一起使用:

[2017-06-22 13:41:12,779]   INFO -   jetbrains.buildServer.VCS.P4 - Running p4 login for user myUserId in [P4Port: redacted-server-address:1666; P4User: myUserId; perforce client mapping with 1 rules, VCSRoot: "ETG" {internal id=170}]
[2017-06-22 14:07:38,029]   INFO -   jetbrains.buildServer.VCS.P4 - Creating P4 workspace TC_p4_LinuxBuildAgent1_964e0a7b4154cd8c_85d77afe3e61a99a
[2017-06-22 14:07:38,225]   INFO -   jetbrains.buildServer.VCS.P4 - Creating/updating Perforce client specification:
Client: TC_p4_LinuxBuildAgent1_964e0a7b4154cd8c_85d77afe3e61a99a
Owner:  myUserId
Description:
        Created by TeamCity for user myUserId.
Root:   /home/someuser/BuildAgent/work/964e0a7b4154cd8c
Options:        noallwrite clobber nocompress unlocked nomodtime rmdir
Host:           ubuntu
SubmitOptions:  revertunchanged
LineEnd:        local

View:

        //ETS/GE_DEV/Build/...  //TC_p4_LinuxBuildAgent1_964e0a7b4154cd8c_85d77afe3e61a99a/...

[2017-06-22 14:07:38,436]   INFO -   jetbrains.buildServer.VCS.P4 - Running p4 login for user myUserId in [P4Port: redacted-server-address:1666; P4User: myUserId; perforce client mapping with 1 rules, VCSRoot: "ETG" {internal id=170}]
[2017-06-22 14:07:39,016]   WARN - l.patch.AbstractSourcesUpdater - Error while checkout on agent: Perforce password (P4PASSWD) invalid or unset. - while running 'p4 -c TC_p4_LinuxBuildAgent1_964e0a7b4154cd8c_85d77afe3e61a99a -u myUserId -p
 redacted-server-address:1666 -H ubuntu client -i'
jetbrains.buildServer.vcs.VcsException: Perforce password (P4PASSWD) invalid or unset. - while running 'p4 -c TC_p4_LinuxBuildAgent1_964e0a7b4154cd8c_85d77afe3e61a99a -u myUserId -p redacted-server-address:1666 -H ubuntu client -i'
        at jetbrains.buildServer.vcs.perforce.PerforceConnection.runCommand(PerforceConnection.java:271)
        at jetbrains.buildServer.vcs.perforce.PerforceConnection.runCommand(PerforceConnection.java:257)
        at jetbrains.buildServer.vcs.perforce.PerforceWorkspacesImpl.createOrUpdateWorkspace(PerforceWorkspacesImpl.java:80)
        at jetbrains.buildServer.vcs.perforce.PerforceAgentSourceUpdater.createOrUpdateLocalWorkspace(PerforceAgentSourceUpdater.java:99)
        at jetbrains.buildServer.vcs.perforce.PerforceAgentSourceUpdater.updateSources(PerforceAgentSourceUpdater.java:68)
        at jetbrains.buildServer.vcs.perforce.PerforceAgentSourceUpdater.updatePerforceSources(PerforceAgentSourceUpdater.java:55)
        at jetbrains.buildServer.vcs.perforce.PerforceSourceUpdatePolicy.updateSources(PerforceSourceUpdatePolicy.java:66)
        at jetbrains.buildServer.agent.impl.vcs.AgentVcsManagerExImpl$CheckoutSupportImpl.updateSources(AgentVcsManagerExImpl.java:108)
        at jetbrains.buildServer.agent.impl.patch.ProjectSourcesOnAgent$1.run(ProjectSourcesOnAgent.java:186)
        at java.lang.Thread.run(Thread.java:745)

我相当确定我们的Perforce服务器使用基于票证的身份验证。在构建机器上,我可以运行 p4登录(提示输入密码)。这是成功的,允许我运行 p4客户端,它返回包含“AuthMethod:perforce”的用户规范(用户规范包含“密码:”行)。

我尝试了几种不同的解决方法,包括:

  • 创建包含P4PASSWD
  • 的.p4enviro文件
  • 为P4PASSWD设置环境变量(在/ etc / environment中)

然而,这些没有效果......

日志对我来说很奇怪,因为登录似乎成功(至少没有记录错误)。但是,结账失败并出现P4PASSWD错误。

此外,VCS根目录正在使用客户端映射(但我也尝试使用客户端 - 同样存在错误)。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

感谢那些在上面添加评论的人解决了这个问题。

此问题是由于rc.local中的一个条目引起的,该条目是向agent.sh发出start命令(从而导致构建代理以root身份运行)。

如果我只有RTFM,我就不会遇到这个问题:)