【发布时间】:2015-02-03 19:28:56
【问题描述】:
Jenkins 版本:1.573
Jenkins Xvfb 插件 版本:1.0.15(最新)
Linux 操作系统:Red Hat Enterprise Linux Server 版本 5.9 (Tikanga)
Xorg -version
X Window System Version 7.1.1
Release Date: 12 May 2006
X Protocol Version 11, Revision 0, Release 7.1.1
Build Operating System: Linux 2.6.18-308.13.1.el5 x86_64 Red Hat, Inc.
Current Operating System: Linux kobaloki2 2.6.18-348.16.1.el5 #1 SMP Sat Jul 27 01:05:23 EDT 2013 x86_64
Build Date: 06 November 2012
Build ID: xorg-x11-server 1.1.1-48.100.el5
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Module Loader present
哪个Xvfb
/usr/bin/Xvfb
我有一些基于 Selenium GUI 的测试,我正在针对给定环境/服务器的网站运行这些测试,这些测试检查该网站的一切是否正常工作,即执行登录/注销和其他一些点击这里n那里成功。
由于这些是 Selenium GUI 测试,我想在机器 (Linux) 上以 HEADLESS 模式运行这些测试,我需要 X 显示服务器 (Xvfb)。
我导出了 DISPLAY 变量并成功启动了 /etc/init.d/xvfb。
root 5996 1 0 2014 ? 00:00:00 /usr/bin/Xvfb :99 -ac -screen 0 1024x768x8
我正在使用 Xvfb 插件,它已成功安装在我的 Jenkins 实例上,并且 Jenkins Global 和 Jenkins 作业级别的配置设置正确,如果我在 master/ 上运行作业,它工作正常从属实例(注意:目前我已经在同一台主服务器上创建了 2 个从属服务器,但我还有其他单独的服务器,我计划在其中安装更多从属服务器 em>)。
当我只同时运行 2 个作业时,我看到以下 additional 进程,即每次运行并且作业成功完成。 注意:我在Xvfb插件中的offset值为1。如果我使用100,那么下面会分别显示:101和:102。
u10003 16264 6921 1 12:56 ? 00:00:01 Xvfb :1 -screen 0 1024x768x8 -fbdir /production/JSlaves/kobaloki2_2/xvfb-2015-02-03_12-56-41-60597.fbdir
u10003 16289 6691 0 12:56 ? 00:00:00 Xvfb :2 -screen 0 1024x768x8 -fbdir /production/JSlaves/kobaloki2_1/xvfb-2015-02-03_12-56-46-7546741396559175462.fbdir
我尝试同时运行 Jenkins 作业(成功在主/从服务器上运行 Selenium GUI 集成/验收测试)。
现在,我想要实现的是运行此 Jenkins 作业的多个并发构建/运行(这样我就可以同时运行多个测试,即执行某种基于体积的测试)。 目前,我不想在 Selenium Grid 服务器上运行这些测试(超出本文的范围)。
我的问题:
1. 如果选中“让 Xvfb 选择显示名称”复选框,那么我会收到以下错误 (这里的作业是在主 Jenkins 实例上运行的,而不是一个奴隶,因此 /production/jenkinsAKS/... 基本文件夹)。 如何让 Xvfb 使用 -displayfd 变量成功?
13:33:01 Xvfb starting$ Xvfb -displayfd 2 -screen 0 1024x768x8 -fbdir /production/jenkinsAKS/xvfb-2015-02-03_13-33-00-6577455998897275731.fbdir
13:33:01 Unrecognized option: -displayfd
...
....bunch of options for Xvfb command
...
..
13:33:01 Fatal server error:
13:33:01 Unrecognized option: -displayfd
13:33:01
13:33:11
13:33:11 ERROR: Xvfb failed to start, consult the lines above for errors
通过此链接:https://wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin 让 Xvfb 选择显示名称 使用 Xvfb 的 -displayfd 选项通过扫描可用的名称来选择自己的显示名称。 此选项需要最新版本的 xserver,请检查您的安装以获得支持。 如果您不想管理显示编号范围但要使用第一个空闲显示编号,则很有用。
2. 在上面的快照(Xvfb 插件)中,我看到 Xvfb 附加选项 框,我可以尝试任何选项来告诉 Xvfb 使用display# 哪个当前没有被使用?
3. 看来我需要更新 X 服务器版本(Xorg -version)。 我该怎么做,我应该运行什么命令?
4.如果我取消选中上述复选框并且如果我运行此 Jenkins 作业的多个构建(超过 2 个) ,然后如果 DISPLAY 号码已在使用中,则会出现以下错误。 在 Xvfb 插件中使用该复选框,我试图告诉 Xvfb 使用空闲列表中的显示编号,如果一个不可用。
此错误出现在显示 #1 或 #2 取决于 Xvfb 插件如何在 Jenkins 环境中分配数字(使用 node/slave# 等)。
13:04:27 Fatal server error:
13:04:27 Server is already active for display 1
13:04:27 If this server is no longer running, remove /tmp/.X1-lock
13:04:27 and start again.
13:04:27
13:04:27 unlink: No such file or directory
13:04:42 unlink failed, errno 2
13:04:42 ERROR: Xvfb failed to start, consult the lines above for errors
**How can I get rid of the above error** (seems like when I can resolve bullet 2 above)?
注意:如果我使用单个从属设备(在同一个主实例上或任何其他服务器上)并将执行程序的数量从 1/2 增加到 20 或更大,那么,Xvfb 是同时成功运行 N 次构建/运行/测试,没有任何失败。如果由于 DISPLAY 不可用而重试失败的构建,我也可以使用 naginator 插件。但是,这不是我这次看到的。
【问题讨论】:
标签: selenium plugins jenkins fatal-error xvfb