年前碰到一個頭疼的問題,在配置jenkins github pull request builder, ios編譯環境時,xcodebuild總是出錯,
錯誤資訊隻有一行:
tools/jenkins-scripts/ios-build.sh: line 6: 19109 Abort trap: 6
在system.log裡,也可以查到一個錯誤資訊:
xcodebuild:stack overflow
但是,通過ssh終端,在同一台編譯伺服器上啟動同樣的編譯腳本,是可以正常運作的
而且,配置了一個定時編譯任務,也是在同一台伺服器上運作同一個編譯腳本,也是正常的
開始懷疑是jnlp連接配接的問題,改用ssh,也不行
懷疑jenkins啟動的bash程序和手動的stack size配置不一樣,用ulimit列印出來看,是一樣的
懷疑是建構任務用python調用bash腳本導緻的,改直接用bash腳本,也不行
試着增加mac bash預設的stack size,查了很多資料,都沒有成功
春節這幾天,腦袋裡都在轉這個問題,搞的年都沒過好:( 到底還有什麼配置不一樣呢?
剛才突然想到,pull request builder是用bash 環境變量傳遞github webhook payload參數的,而定時編譯和手動編譯時,沒有設定相應的環境變量。馬上試一下,把payload去掉,結果,pull request builder 馬上順利跑起來了
PS: payload有20KB...作為一個環境變量,确實是大了點
果然是馬年行大運,馬上沒bug~~
不過,我還是把這個crash bug報告給了蘋果,看看他們怎麼解釋。