2017-06-06 50 views
1

由於我意外修改了安全設置而不知道,因此我們必須清除整個成員訪問列表並重新啓動,因此用戶標識應始終爲非空值。現在有一個匿名用戶(這是新的 - 我們曾經有一個「管理員」用戶)。它似乎在詹金斯匿名用戶正在中止工作,顯示此錯誤:Jenkins運行由匿名中止運行:由於DefaultUserCanonicalIdResolver

FATAL: The user id should be always non-null thanks to DefaultUserCanonicalIdResolver 
java.lang.IllegalStateException: The user id should be always non-null thanks to DefaultUserCanonicalIdResolver 
    at hudson.model.User.get(User.java:401) 
    at hudson.model.User.get(User.java:362) 
    at hudson.model.User.get(User.java:481) 
    at jenkins.model.CauseOfInterruption$UserInterruption.getUser(CauseOfInterruption.java:86) 
    at jenkins.model.CauseOfInterruption$UserInterruption.print(CauseOfInterruption.java:95) 
    at hudson.model.Executor.recordCauseOfInterruption(Executor.java:276) 
    at hudson.model.Run.execute(Run.java:1755) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:410) 
ERROR: Post-build steps failed 
java.lang.NullPointerException 
    at hudson.model.JobProperty.getDescriptor(JobProperty.java:105) 
    at hudson.model.JobProperty.getDescriptor(JobProperty.java:79) 
    at hudson.model.Descriptor.toMap(Descriptor.java:973) 
    at hudson.model.Job.getProperties(Job.java:558) 
    at hudson.model.Build$BuildExecution.cleanUp(Build.java:196) 
    at hudson.model.Run.execute(Run.java:1785) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:410) 

回答

0

你與像木偶配置管理工具,管理您的服務器詹金斯?我們發現我們的一個Puppet Jenkins模塊喜歡使用CLI遠程加上管理員用戶來運行Jenkins管理命令。當我們的用戶列表發生變化並且管理員用戶消失時,由於匿名身份驗證,這些命令仍然會成功,但是當Jenkins使用不存在的用戶請求驗證身份時,詹金斯驚慌失措。

爲了讓事情更有趣,Puppet作爲服務運行,計劃每30分鐘一次,所以我們在日誌中一遍又一遍地得到了這個錯誤。

這裏有幾個選項:

  • 如果你擁有它,重新添加「管理員」用戶。
  • (低租金解決方案)請勿在Jenkins盒子上將配置管理工具作爲服務運行,而應使用一次性命令來啓動它。這不會擺脫導致此堆棧跟蹤的潛在問題(在沒有此用戶的情況下嘗試以「管理員」身份進行身份驗證),但這可能有助於在診斷故障時使日誌更安靜。
  • 更改您的配置管理腳本,以其他方式配置Jenkins,以避免發癢用戶身份驗證。
相關問題