年前碰到一个头疼的问题,在配置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报告给了苹果,看看他们怎么解释。