1
使用Team市2017.1的Linux:代理端檢出失敗 - Perforce的密碼(P4PASSWD)無效或取消
我無法使用代理端結賬用我的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」的用戶規範(用戶規範不包含包括「密碼:」行)。
我已經嘗試了幾個不同的解決方法,包括:
- 創建.p4enviro文件,該文件包括P4PASSWD
- 設置的環境變量用於P4PASSWD(在/ etc /環境)
然而,這些沒有效果...
日誌似乎很奇怪,因爲登錄看起來成功(至少,沒有錯誤記錄)。但是,結帳失敗並帶有P4PASSWD錯誤。
此外,VCS根目錄正在使用客戶端映射(但我已將其與客戶端一起嘗試過 - 同樣的錯誤存在)。
任何幫助將不勝感激!
你運行的「P4登錄」作爲構建代理程序作爲系統相同的用戶?票證文件(以及enviro文件)默認存儲在當前用戶的主目錄中。 –
請檢查帳戶構建代理運行的/Users/buildAgentUser/.p4tickets文件是否可寫和可訪問?構建代理應該能夠寫入文件。另外,你有沒有將P4TICKETS變量設置爲某個非默認值? – KIR
@SamStafford - 我發現構建代理正在通過rc.local啓動,因此以root身份運行,而不是p4登錄成功使用的buildAgentUser。所以,我能夠糾正這個問題,現在代理端結賬工作正常! –