2017-01-11 46 views
2

我們剛剛更新到TFS 2017,我正在爲我們的構建設置SonarQube integration into pull requests。在這個過程中,我遇到了一個我似乎無法解決的問題。SonarQube - 無法寫信息錯誤

我們有三個構建服務器,每個構建服務器上都有兩套構建代理。我們稱他們爲BA1和BA2。此外,我們正在使用新的SonarQube插件TFS,而不是已棄用的插件here

BA2完美地工作。在生成增量分析報告和完整分析報告方面沒有任何問題。然而,使用BA1任何構建最終使得約一半失敗之前結束分析步驟用類似這樣的消息:

ERROR: Error during SonarQube Scanner execution 
org.sonar.core.util.ContextException: Unable to write message | file=E:\workingDirectory\_work\3\.sonarqube\out\.sonar\batch-report\component-5072.pb 

... //long stacktrace 

Caused by: java.io.FileNotFoundException: E:\workingDirectory\_work\3\.sonarqube\out\.sonar\batch-report\component-5072.pb (The directory or file cannot be created) 

我敢肯定,因爲所有構建下運行它不是一個權限問題相同的用戶帳戶。運行哪個項目或構建服務器並不重要。所有BA2運行的作業都是成功的。所有與BA1一起運行的作業都會因此錯誤而失敗。我看到一個類似的問題here,但解決這個問題不適用於我。我沒有排隊到同一個工作區的其他工作的問題。

只是想看看是否有可能有人遇到過這個問題。我檢查了_diag目錄下的構建代理日誌,但一直未能找到有用的東西。我已經用盡了想法來檢查。感謝您的任何提示。

+0

您能否分享BA1和BA2的.agent文件?特別是驗證它們沒有使用相同的_workingDirectory_(即e:\ workingDirectory) –

+0

BA1和BA2在配置方面是否相同,並且您是否在目錄中找到了一些pb文件? –

+0

如果配置另一個構建代理,是否可以重現此問題? –

回答

1

原來,對於失敗的版本,驅動器(E :)被格式化爲FAT32 RAM驅動器。驅動器未滿,但我們仍然在該驅動器上遇到某種限制,導致構建失敗。

我不認爲這是一個文件數量的限制,因爲我們從目錄中刪除了幾個文件,並試圖添加一個新的,它不會允許我們添加一個。當我刪除batch-report目錄下的所有文件時,它終於允許我再次添加文件。我假設這是導致問題的某種目錄大小限制。無論如何,我們不是浪費時間試圖弄清究竟是什麼原因,而是將驅動器重新格式化爲NTFS,並且構建問題消失了。感謝大家的想法和提示。