博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JENKINS: Xvnc does not set the DISPLAY environment
阅读量:2386 次
发布时间:2019-05-10

本文共 9610 字,大约阅读时间需要 32 分钟。

https://issues.jenkins-ci.org/browse/JENKINS-3502

Since an update to version 1.6 and Hudson 1.299 the DISPLAY variable is not set

during the build process anymore.
We try to test a SWT application wich requires this env-var or refuses to start.
Below is first the SWT exception - with a cryptic error message but this means
not DISPLAY is found.
Below the trace are all system properties printed by Sytem.getProperties().list(...)

Exception in thread "main" org.eclipse.swt.SWTError: No more handles

[gtk_init_check() failed]
at org.eclipse.swt.SWT.error(Unknown Source)
at org.eclipse.swt.widgets.Display.createDisplay(Unknown Source)
at org.eclipse.swt.widgets.Display.create(Unknown Source)
at org.eclipse.swt.graphics.Device.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.<init>(Unknown Source)
at org.eclipse.swt.widgets.Display.getDefault(Unknown Source)
at de.willuhn.jameica.gui.GUI.getDisplay(GUI.java:748)
at de.willuhn.jameica.gui.SplashScreen.<init>(SplashScreen.java:69)
at
de.willuhn.jameica.system.ApplicationCallbackSWT.getStartupMonitor(ApplicationCallbackSWT.java:168)
at de.willuhn.jameica.system.Application.init(Application.java:96)
at de.willuhn.jameica.system.Application.newInstance(Application.java:86)
at de.willuhn.jameica.Main.main(Main.java:78)

System Properties:

– listing properties –
java.vendor=Sun Microsystems Inc.
JOB_NAME=c - jameica-update-server
PWD=/home/markusw/emedia-solutions-wolf.d...
localRepository=/home/markusw/.m2/repository
sun.java.launcher=SUN_STANDARD
sun.management.compiler=HotSpot Client Compiler
PATH=/home/markusw/bin:/usr/local/bin:/usr...
os.name=Linux
sun.boot.class.path=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/...
EXECUTOR_NUMBER=0
env.PWD=/home/markusw/emedia-solutions-wolf.d...
env.LANG=de_DE.UTF-8
java.vm.specification.vendor=Sun Microsystems Inc.
java.runtime.version=1.5.0_16-b02
LD_LIBRARY_PATH=/usr/lib/jvm/java-6-sun-1.6.0.10/jre/...
user.name=markusw
env._=/usr/bin/nohup
env.USER=markusw
env.SHELL=/bin/bash
env.NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
env.PATH=/usr/lib/jvm/java-1.5.0-sun/bin:/home...
user.language=de
sun.boot.library.path=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/...
java.version=1.5.0_16
user.timezone=Europe/Berlin
sun.arch.data.model=32
TERM=xterm
NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat
java.endorsed.dirs=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/...
BUILD_ID=2009-04-16_08-18-23
sun.cpu.isalist=
sun.jnu.encoding=UTF-8
file.encoding.pkg=sun.io
env.SHLVL=2
SHELL=/bin/bash
file.separator=/
env.SVN_REVISION=67
java.specification.name=Java Platform API Specification
java.class.version=49.0
user.country=DE
env.BUILD_NUMBER=66
java.home=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/jre
java.vm.info=mixed mode, sharing
env.LOGNAME=markusw
os.version=2.6.27-11-generic
env.HUDSON_COOKIE=42d394fc-8cfa-4a21-b1c0-3d6037b8425a
path.separator=:
java.vm.version=1.5.0_16-b02
env.LANGUAGE=de_DE:de:en_GB:en
env.JOB_NAME=c - jameica-update-server
SHLVL=2
_=/usr/bin/nohup
env.JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
java.awt.printerjob=sun.print.PSPrinterJob
env.TERM=xterm
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
sun.io.unicode.encoding=UnicodeLittle
LOGNAME=markusw
HOME=/home/markusw
env.HUDSON_URL=
env.BUILD_TAG=hudson-c - jameica-update-server-66
maven.interceptor=/home/markusw/.hudson/plugins/maven-p...
user.home=/home/markusw
BUILD_TAG=hudson-c - jameica-update-server-66
HUDSON_URL=
env.OLDPWD=/home/markusw/emedia-solutions-wolf.d...
java.specification.vendor=Sun Microsystems Inc.
CLASSPATH=
java.library.path=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/...
java.vendor.url=
env.HUDSON_HOME=/home/markusw/.hudson
java.vm.vendor=Sun Microsystems Inc.
java.runtime.name=Java(TM) 2 Runtime Environment, Stand...
maven.home=/usr/local/apache-maven-2.0.9
java.class.path=/home/markusw/.hudson/plugins/maven-p...
env.EXECUTOR_NUMBER=0
env.XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt
java.vm.specification.name=Java Virtual Machine Specification
PATH+JDK=/usr/lib/jvm/java-1.5.0-sun/bin
java.vm.specification.version=1.0
sun.os.patch.level=unknown
sun.cpu.endian=little
MAIL=/var/mail/markusw
env.HOME=/home/markusw
surefire.test.class.path=/home/markusw/.hudson/jobs/c - jameic...
java.io.tmpdir=/tmp
env.LD_LIBRARY_PATH=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/...
HUDSON_HOME=/home/markusw/.hudson
java.vendor.url.bug=...
OLDPWD=/home/markusw/emedia-solutions-wolf.d...
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
os.arch=i386
java.ext.dirs=/usr/lib/jvm/java-1.5.0-sun-1.5.0.16/...
SVN_REVISION=67
user.dir=/home/markusw/.hudson/jobs/c - jameic...
env.BUILD_ID=2009-04-16_08-18-23
line.separator=

java.vm.name=Java HotSpot(TM) Client VM

BUILD_NUMBER=66
basedir=/home/markusw/.hudson/jobs/c - jameic...
file.encoding=UTF-8
env.MAIL=/var/mail/markusw
LANG=de_DE.UTF-8
env.WORKSPACE=/home/markusw/.hudson/jobs/c - jameic...
WORKSPACE=/home/markusw/.hudson/jobs/c - jameic...
java.specification.version=1.5
LANGUAGE=de_DE:de:en_GB:en
USER=markusw
XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt

Activity

  • Comments
added a comment -
2009/Apr/18 12:47 AM

When I create a simple job and output the 'env' cmd on the shell the DISPLAY is

set. But the strange thing in that is that during my test (surefire) all hudson
specific env-vars are set (like HUDSON_HOME, HUDSON_URL, ...) only the DISPLAY
is missing.

added a comment -
2009/Apr/20 4:37 PM

Confirmed, it does not work for native Maven jobs.

added a comment -
2009/Apr/20 4:51 PM

xvnc-1.5.hpi does not work in 1.301-SNAPSHOT either, so I guess the regression

is in Hudson core and/or Maven plugin.

added a comment -
2009/Apr/20 5:44 PM

Code changed in hudson

User: : jglick
Path:
trunk/hudson/main/maven-plugin/src/main/java/hudson/maven/MavenBuild.java
trunk/hudson/main/maven-plugin/src/main/java/hudson/maven/MavenModuleSetBuild.java
Log:
[FIXED JENKINS-3502] Maven builds were not correctly using build wrappers.
Module set builds were running wrappers but ignoring any environment variables they tried to set.
Individual module builds (e.g. "Run in parallel" checked, or just click Build Now on a module) were ignoring wrappers altogether.
Either way, $DISPLAY was not being set when the XVNC plugin was used.
Note: there is a certain amount of code duplication in the various doRun implementations which could perhaps be factored out somewhere.

added a comment -
2014/Oct/09 8:36 PM

Code changed in jenkins

User: Kohsuke Kawaguchi
Path:
src/main/java/hudson/maven/AbstractMavenBuild.java
src/main/java/hudson/maven/MavenModuleSetBuild.java
Log:
Mutating 'envVars' returned from getEnvironment() creates a bad precedent.

It is better to just recompute the envVars, which will reflect all the added environments.

See:

Relevant conversation:

(11:31:53 AM) KostyaSha: kohsuke, while windows is eating your IO, could you advice with ?

(11:34:27 AM) kohsuke: KostyaSha: the bug looks legit, but I'm not sure about the fix. Basically I agree with Jesse's comment
(11:35:35 AM) KostyaSha: kohsuke, this broken by design i think, it should be a good idea to share envvars for builders. This should also reduce .getEnvironments() calls
(11:36:33 AM) KostyaSha: kohsuke, is there any place where they maybe safely shared?
(11:37:03 AM) kohsuke: I'm afraid I don't understand the notion of "sharing envvars"
(11:37:35 AM) kohsuke: It gets computed from various things, and I thought EnvironmentContributingAction is a part of it
(11:38:44 AM) KostyaSha: kohsuke, yes, and they are stored in envvars variable, then job calls prebuilders that modifies EnvironmentContributingAction and then job calls maven build with not updated envvars content
(11:39:05 AM) kohsuke: then it should just call EnvVars envVars = getEnvironment(listener); again
(11:39:50 AM) KostyaSha: kohsuke, i not sure that there is no any specific changes with envvars after first getEnvironment(listener) call and before prebuilders
(11:40:30 AM) KostyaSha: i compared on my local instance and this should work, but i not sure... potentially some changes to envvars maybe lost...
(11:40:31 AM) kohsuke: Basically, one should never modify what Run.getEnvironment() returned
(11:40:51 AM) kohsuke: If the map returned is missing some desirable entries, then it should be fixing by having the getEnvironment() implementation add them
(11:41:11 AM) kohsuke: It looks to me that this change violates that idea
(11:42:02 AM) KostyaSha: i like idea of refreshing with simple call to getEnvironment(listener)
(11:42:03 AM) kohsuke: if environment-contributing subset of rootBuild.actions should be a part of the env vars, according to the above principle it should be done in the getEnvironment() method
(11:42:52 AM) kohsuke: (Also, let's not print out random stuff into "logger.println" that most users would not care
(11:43:02 AM) kohsuke: Those should be j.u.logging statements)
(11:43:28 AM) KostyaSha: kohsuke, yeah this logger not needed of course
(11:44:55 AM) KostyaSha: kohsuke, what this part do?
(11:45:44 AM) kohsuke: That looks wrong to me, too, for the same reason
(11:45:49 AM) kohsuke: All right, you convinced me to open this in IDE
(11:46:03 AM) kohsuke: Screw the preparation for the meeting
(11:47:29 AM) kohsuke: Wow, that line has jglick fixing HUDSON-3502
(11:47:31 AM) jenkins-admin: :Xvnc does not set the DISPLAY environment (Closed)
(11:48:06 AM) KostyaSha: 0_o
(11:48:17 AM) kohsuke: From 2009
(11:49:34 AM) KostyaSha: kohsuke, and the next block is also added for resolving variables
(11:49:42 AM) kohsuke: Yep
(11:50:28 AM) KostyaSha: so after every step we need recalculate changes... so easy to allow do direct modifications of envvars i think

转载地址:http://uojab.baihongyu.com/

你可能感兴趣的文章
MSComDlg.CommonDialog服务器不能创建对象错误的解决
查看>>
ArcGIS二次开发之读取遥感图像像素值的做法
查看>>
netcdf源码在windows上的编译
查看>>
慎用VC 6.0
查看>>
游戏杆编程心得
查看>>
周例会的作用
查看>>
字符集研究之多字节字符集和unicode字符集
查看>>
字符集研究之不同字符集的转换方式
查看>>
一个应用程序无法启动错误的解决过程
查看>>
除虫记——有关WindowsAPI文件查找函数的一次压力测试
查看>>
Incredibuild导入key的方式
查看>>
跨平台C++开源代码的两种常用编译方式
查看>>
Eclipse的搜索技巧
查看>>
centos常用命令二
查看>>
通过修改kong属性解决不能获取外网域名的问题
查看>>
Eclipse带命令行参数调试
查看>>
php smtp发送邮件
查看>>
yii框架的404、500等异常处理
查看>>
yii框架在layout模式下,模版和layout文件的渲染顺序
查看>>
php5对象复制、clone、浅复制与深复制
查看>>