Community
Participate
Working Groups
I get the following error when Buckminster tries to sign: !ENTRY org.eclipse.buckminster.core 4 293 2010-09-02 13:39:30.446 !MESSAGE org.eclipse.core.runtime.CoreException: /opt/public/modeling/mdt/modisco/buckminster/install/configuration/org.eclipse.osgi/bundles/20/1/.cp/org/eclipse/buckminster/jarprocessor/antscript/signing.ant:210: Execute failed: java.io.IOException: java.io.IOException: /usr/bin/sign: cannot execute !STACK 1 org.eclipse.core.runtime.CoreException: /opt/public/modeling/mdt/modisco/buckminster/install/configuration/org.eclipse.osgi/bundles/20/1/.cp/org/eclipse/buckminster/jarprocessor/antscript/signing.ant:210: Execute failed: java.io.IOException: java.io.IOException: /usr/bin/sign: cannot execute at org.eclipse.buckminster.ant.AntRunner.handleInvocationTargetException(AntRunner.java:167) at org.eclipse.buckminster.ant.AntRunner.run(AntRunner.java:322) at org.eclipse.buckminster.ant.actor.AntActor.internalPerform(AntActor.java:254) at org.eclipse.buckminster.core.actor.AbstractActor.perform(AbstractActor.java:186) at org.eclipse.buckminster.core.internal.actor.PerformManager$DirectActionInvocation.execute(PerformManager.java:143) at org.eclipse.buckminster.core.internal.actor.PerformManager.internalPerform(PerformManager.java:454) at org.eclipse.buckminster.core.internal.actor.PerformManager.perform(PerformManager.java:293) at org.eclipse.buckminster.core.internal.actor.PerformManager.perform(PerformManager.java:305) at org.eclipse.buckminster.core.commands.Perform.internalRun(Perform.java:108) at org.eclipse.buckminster.core.commands.WorkspaceCommand.run(WorkspaceCommand.java:91) at org.eclipse.buckminster.cmdline.AbstractCommand.basicRun(AbstractCommand.java:194) at org.eclipse.buckminster.cmdline.Headless.run(Headless.java:317) at org.eclipse.buckminster.cmdline.Headless.run(Headless.java:136) at org.eclipse.buckminster.cmdline.Headless.start(Headless.java:156) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574) at org.eclipse.equinox.launcher.Main.run(Main.java:1407) at org.eclipse.equinox.launcher.Main.main(Main.java:1383) Caused by: /opt/public/modeling/mdt/modisco/buckminster/install/configuration/org.eclipse.osgi/bundles/20/1/.cp/org/eclipse/buckminster/jarprocessor/antscript/signing.ant:210: Execute failed: java.io.IOException: java.io.IOException: /usr/bin/sign: cannot execute at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:665) at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:487) at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288) at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) at org.apache.tools.ant.Task.perform(Task.java:348) at org.apache.tools.ant.Target.execute(Target.java:357) at org.apache.tools.ant.Target.performTasks(Target.java:385) at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337) at org.apache.tools.ant.Project.executeTarget(Project.java:1306) at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) at org.eclipse.ant.internal.core.ant.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32) at org.apache.tools.ant.Project.executeTargets(Project.java:1189) at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:662) at org.eclipse.ant.internal.core.ant.InternalAntRunner.run(InternalAntRunner.java:495) at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.eclipse.buckminster.ant.AntRunner.run(AntRunner.java:318) ... 25 more Caused by: java.io.IOException: java.io.IOException: /usr/bin/sign: cannot execute at java.lang.UNIXProcess.<init>(UNIXProcess.java:148) at java.lang.ProcessImpl.start(ProcessImpl.java:65) at java.lang.ProcessBuilder.start(ProcessBuilder.java:451) at java.lang.Runtime.exec(Runtime.java:591) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:832) at org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:447) at org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:461) at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:621) at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:662) ... 45 more
Are you sure this is being run inside Hudson?
(In reply to comment #1) > Are you sure this is being run inside Hudson? Yes, I am running the build under Hudson, and calling Buckminster from a shell script defined in the Hudson job: buckminster="/opt/public/modeling/mdt/modisco/buckminster/install/buckminster --loglevel info -data ${WORKSPACE}/buildroot/buckminster.workspace -consolelog" $buckminster setpref targetPlatformPath="${WORKSPACE}/buildroot/target.platform" $buckminster import -Declipse.download="file:/home/data/httpd/download.eclipse.org" "${WORKSPACE}/org.eclipse.gmt.modisco.releng.buckminster/modisco.mspec" $buckminster resolve "${WORKSPACE}/org.eclipse.gmt.modisco.releng.buckminster/modisco.cquery" $buckminster build $buckminster junit -DX.display="${DISPLAY}" --launch "org.eclipse.gmt.modisco.tests/AllTests.launch" --flatXML --output "${WORKSPACE}/buildroot/test.results/xml/org.eclipse.mdt.modisco.tests.xml" $buckminster perform --properties "${WORKSPACE}/buildroot/build.properties" "org.eclipse.gmt.modisco.all#site.p2"
Which job is this? Can you add a link to the build log? Or better still can you have this buckminster instance dump it's environment so we can check the user/group? -M.
(In reply to comment #3) > Which job is this? https://hudson.eclipse.org/hudson/job/modisco-integration/ > Can you add a link to the build log? I deleted the job artifacts recently to try and reduce disk space usage. I'll attach a build log next time. > Or better still can you have this buckminster instance dump its > environment so we can check the user/group? Here's the result of running "env" from the Job. I assume Buckminster inherits this environment: LESSKEY=/etc/lesskey.bin NNTPSERVER=news MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man INFODIR=/usr/local/info:/usr/share/info:/usr/info BUILD_URL=https://hudson.eclipse.org/hudson/job/modisco-integration/67/ HOSTNAME=build XKEYSYMDB=/usr/share/X11/XKeysymDB SHELL=/bin/bash HOST=hudson TERM=xterm PROFILEREAD=true HISTSIZE=1000 BUILD_TAG=hudson-modisco-integration-67 PROJRELENGROOT=svn://dev.eclipse.org/svnroot/modeling/org.eclipse.mdt.modisco/releng/trunk QT_HOME_DIR=/usr/share/desktop-data MORE=-sl WORKSPACE=/opt/users/hudsonbuild/.hudson/jobs/modisco-integration/workspace JOB_URL=https://hudson.eclipse.org/hudson/job/modisco-integration/ ANT_OPTS=-Dhttp.proxyHost=206.191.52.34 -Dhttp.proxyPort=9898 -Dhttps.proxyHost=206.191.52.34 -Dhttps.proxyPort=9898 -Dhttp.nonProxyHosts=*.eclipse.org -Dhttps.nonProxyHosts=*.eclipse.org USER=hudsonbuild http_proxy=http://206.191.52.34:9898 LS_COLORS=no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32: LD_LIBRARY_PATH=/opt/public/common/sun-jdk1.6.0_21_x64/jre/lib/amd64/server:/opt/public/common/sun-jdk1.6.0_21_x64/jre/lib/amd64:/opt/public/common/sun-jdk1.6.0_21_x64/jre/../lib/amd64 XNLSPATH=/usr/share/X11/nls ENV=/etc/bash.bashrc HOSTTYPE=x86_64 USERNAME=hudsonbuild PAGER=less CSHEDIT=emacs JVM_OPTS=-Dhttp.proxyHost=206.191.52.34 -Dhttp.proxyPort=9898 -Dhttps.proxyHost=206.191.52.34 -Dhttps.proxyPort=9898 -Dhttp.nonProxyHosts=*.eclipse.org -Dhttps.nonProxyHosts=*.eclipse.org XDG_CONFIG_DIRS=/etc/xdg MINICOM=-c on NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat PATH=/shared/common/jdk-1.5.0-22.x86_64/bin:/shared/common/apache-ant-1.7.1/bin:/shared/common/sun-jdk1.6.0_21_x64/bin/:/opt/users/hudsonbuild/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin MAIL=/var/spool/mail/hudsonbuild CPU=x86_64 _=/usr/bin/env INPUTRC=/opt/users/hudsonbuild/.inputrc PWD=/opt/public/jobs/modisco-integration/workspace JAVA_HOME=/shared/common/sun-jdk1.6.0_21_x64 HUDSON_URL=https://hudson.eclipse.org/hudson/ LANG=en_US.UTF-8 VERSION=0.9.0 JOB_NAME=modisco-integration PYTHONSTARTUP=/etc/pythonstart XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt BUILD_TYPE=I BUILD_ID=2010-09-09_10-44-32 https_proxy=http://206.191.52.34:9898 JAVA_ARGS=-Dhttp.proxyHost=206.191.52.34 -Dhttp.proxyPort=9898 -Dhttps.proxyHost=206.191.52.34 -Dhttps.proxyPort=9898 -Dhttp.nonProxyHosts=*.eclipse.org -Dhttps.nonProxyHosts=*.eclipse.org HOME=/opt/users/hudsonbuild SHLVL=3 OSTYPE=linux LESS_ADVANCED_PREPROCESSOR=no no_proxy=localhost, 127.0.0.1, 172.30.206.0, eclipse.org LS_OPTIONS=-N --color=tty -T 0 XCURSOR_THEME=DMZ ANT_ARGS=-Dhttp.proxyHost=206.191.52.34 -Dhttp.proxyPort=9898 -Dhttps.proxyHost=206.191.52.34 -Dhttps.proxyPort=9898 -Dhttp.nonProxyHosts=*.eclipse.org -Dhttps.nonProxyHosts=*.eclipse.org EXECUTOR_NUMBER=1 WINDOWMANAGER=/usr/bin/gnome BASH_ENV=/opt/users/hudsonbuild/.bashrc LOGNAME=hudsonbuild LESS=-M -I MACHTYPE=x86_64-suse-linux G_FILENAME_ENCODING=@locale,UTF-8,ISO-8859-15,CP1252 CVS_RSH=ssh XDG_DATA_DIRS=/usr/share:/etc/opt/kde3/share:/opt/kde3/share SIGN_UPDATE_SITE=true HUDSON_HOME=/opt/users/hudsonbuild/.hudson LESSOPEN=lessopen.sh %s BUILD_NUMBER=67 INFOPATH=/usr/local/info:/usr/share/info:/usr/info HUDSON_COOKIE=9e12d60a-cd0a-4fde-811f-fe5db0fc3cf2 DISPLAY=:10 LESSCLOSE=lessclose.sh %s %s G_BROKEN_FILENAMES=1 COLORTERM=1
> Here's the result of running "env" from the Job. I assume Buckminster inherits > this environment: I would presume so. > USERNAME=hudsonbuild Well that certainly implies it's running with the correct user id. I think the issue may actually be bad group ownership. I'll try a better fix for this by restarting hudson when the current jobs end. -M.
Signing still doesn't work for me. When /usr/bin/sign is called by Buckminster from Hudson, I get: java.io.IOException: /usr/bin/sign: cannot execute But I tried running "/usr/bin/sign" directly from Hudson (in a Job's shell script) and it started with no error: Usage: /usr/bin/sign <file> <mail|nomail> [outputDir] Signs JAR or ZIP file <file>, placing the resulting file in optional [outputDir] and mails notification that signing is complete, if requested. I don't understand why. Do you have an idea?
Could it be caused by this old Java bug? http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4052517
In /etc/passwd: hudsonbuild:x:55011:8411:Hudson:/opt/users/hudsonbuild:/bin/bash So hudsonbuild's primary group is 8411 (callisto-dev). Confirmed by /etc/group: callisto-dev:x:8411:hudsonbuild And when running "groups hudsonbuild" from Hudson, I get: hudsonbuild : callisto-dev Shouldn't I see the "signers" group here too?
Indeed. This happened to us in bug 313722. I've applied the same fix -- can you verify if it works?
It is getting further, though I don't know whether it's thanks to your fix or mine (I just tried modifying the ant script to call /bin/sh on /usr/bin/sign instead of calling it directly) /usr/bin/sign starts, but I receive an error (in /home/data/httpd/download-staging.priv/arch/signer.log): 2010-09-24 11:26:01 build QUEUE: Begin processing queue: 7819 1285341904:hudsonbuild:/opt/users/hudsonbuild/workspace/modisco-nightly/buildroot/eclipse.staging/site_608056616.zip:nomail:/opt/users/hudsonbuild/workspace/modisco-nightly/buildroot/eclipse.staging/out20100924152501 ======================= end of (7819) contents 2010-09-24 11:26:03: build QUEUE(7819): calling jarprocessor.jar for /opt/users/hudsonbuild/workspace/modisco-nightly/buildroot/eclipse.staging/site_608056616.zip java.io.FileNotFoundException at org.eclipse.update.internal.jarprocessor.JarProcessor.process(JarProcessor.java:80) at org.eclipse.update.internal.jarprocessor.Main.runJarProcessor(Main.java:168) at org.eclipse.update.internal.jarprocessor.Main.main(Main.java:184) 2010-09-24 11:26:03: build QUEUE(7819): Finished processing queue. When I look at my workspace through Hudson, I see site_608056616.zip: https://hudson.eclipse.org/hudson/job/modisco-nightly/ws/buildroot/eclipse.staging/
You have to move/copy your build artifacts to the download staging area, since the signing occurs on the build server and cannot access the (local) hudson workspaces. On any Hudson node, simply copy/move files to be signed to /shared/download-staging.priv/(your project directory)
I've updated /usr/bin/sign on all the hudson nodes so that it fails if you're signing from the hudson workspace. It will provide a hint as to where to sign.
(In reply to comment #11) > On any Hudson node, simply copy/move files to be signed to > /shared/download-staging.priv/(your project directory) There doesn't seem to be a project directory for MoDisco. Could you please create "/shared/download-staging.priv/modeling/mdt/modisco/", owned by group "modeling.mdt.modisco"?
I've created the directory for you. I can't wait to see your builds succeed!
I get an error: ERROR: File /shared/download-staging.priv/modeling/mdt/modisco/site_134341880.zip is not in the downloads staging area. Not signing from unknown location. "/shared/download-staging.priv" doesn't appear in the valid locations in /usr/bin/sign: VALIDLOCATION=$(echo "$DIR" | egrep -c "(\/opt\/public\/download-staging.priv\/|\/home\/data\/httpd\/download-staging.priv|\/opt\/users\/hudsonbuild\/)")
I've changed my staging directory to "/home/data/httpd/download-staging.priv/...", and it works now. Thanks for your help!
I've added /shared/download-staging.priv to the list of valid locations.