Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 324380 - Cannot sign with Buckminster on hudson.eclipse.org
Summary: Cannot sign with Buckminster on hudson.eclipse.org
Status: RESOLVED FIXED
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: CI-Jenkins (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Eclipse Webmaster CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-03 03:47 EDT by Nicolas Bros CLA
Modified: 2010-09-27 09:53 EDT (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Bros CLA 2010-09-03 03:47:52 EDT
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
Comment 1 Denis Roy CLA 2010-09-08 11:33:01 EDT
Are you sure this is being run inside Hudson?
Comment 2 Nicolas Bros CLA 2010-09-09 03:53:20 EDT
(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"
Comment 3 Eclipse Webmaster CLA 2010-09-09 09:56:26 EDT
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.
Comment 4 Nicolas Bros CLA 2010-09-09 10:51:42 EDT
(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
Comment 5 Eclipse Webmaster CLA 2010-09-09 11:30:37 EDT
> 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.
Comment 6 Nicolas Bros CLA 2010-09-24 07:44:19 EDT
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?
Comment 7 Nicolas Bros CLA 2010-09-24 08:15:23 EDT
Could it be caused by this old Java bug?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4052517
Comment 8 Nicolas Bros CLA 2010-09-24 08:19:54 EDT
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?
Comment 9 Denis Roy CLA 2010-09-24 11:23:45 EDT
Indeed.  This happened to us in bug 313722.

I've applied the same fix -- can you verify if it works?
Comment 10 Nicolas Bros CLA 2010-09-24 11:41:21 EDT
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/
Comment 11 Denis Roy CLA 2010-09-24 11:43:42 EDT
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)
Comment 12 Denis Roy CLA 2010-09-24 11:51:38 EDT
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.
Comment 13 Nicolas Bros CLA 2010-09-25 05:50:25 EDT
(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"?
Comment 14 Denis Roy CLA 2010-09-25 08:19:50 EDT
I've created the directory for you.  I can't wait to see your builds succeed!
Comment 15 Nicolas Bros CLA 2010-09-27 04:01:38 EDT
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\/)")
Comment 16 Nicolas Bros CLA 2010-09-27 05:20:49 EDT
I've changed my staging directory to "/home/data/httpd/download-staging.priv/...", and it works now. Thanks for your help!
Comment 17 Denis Roy CLA 2010-09-27 09:53:24 EDT
I've added /shared/download-staging.priv to the list of valid locations.