2017-06-22 189 views
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根目錄正在使用客戶端映射(但我已將其與客戶端一起嘗試過 - 同樣的錯誤存在)。

任何幫助將不勝感激!

+0

你運行的「P4登錄」作爲構建代理程序作爲系統相同的用戶?票證文件(以及enviro文件)默認存儲在當前用戶的主目錄中。 –

+0

請檢查帳戶構建代理運行的/Users/buildAgentUser/.p4tickets文件是否可寫和可訪問?構建代理應該能夠寫入文件。另外,你有沒有將P4TICKETS變量設置爲某個非默認值? – KIR

+0

@SamStafford - 我發現構建代理正在通過rc.local啓動,因此以root身份運行,而不是p4登錄成功使用的buildAgentUser。所以,我能夠糾正這個問題,現在代理端結賬工作正常! –

回答

0

感謝上面添加評論的人士。

此問題是由rc.local中的條目導致的,該條目向agent.sh發出啓動命令(因此導致構建代理以root用戶身份運行)。

如果我剛纔RTFM,我就不會遇到這個問題:)