Bug 1033244 - Unable to run Jenkins free style job
Summary: Unable to run Jenkins free style job
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: OpenShift Online
Classification: Red Hat
Component: Image
Version: 2.x
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Dan McPherson
QA Contact: libra bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-11-21 18:52 UTC by Ragunath Ramaswamy
Modified: 2015-05-15 00:35 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2013-11-21 20:32:55 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Ragunath Ramaswamy 2013-11-21 18:52:07 UTC
Description of problem:
Unable to run Jenkins free style job.

I want to create a jenkins job to pull code from bitbucket. I want to install the M2 Release plugin on jenkins and when "Perform Maven Release" is clicked on the job do a release and store the release to a nexus repository (which I will create on a different gear).

Currently I am not able to run any job from jenkins since I get this error below


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.Created a jenkins server (Instant app)
2.created a "Build a free-style software project" from jenkins
3.in the Build secion added a "Execute shell" echo 'hello world'
4. save job
5. build now

Actual results:
Page refreshes and no build happens

Expected results:
echo to be printed on the build output

Additional info:
I log in to the application with ssh and see the jenkins.log

Here are 2 exceptions on that log

<pre>
Nov 20, 2013 8:05:47 PM jenkins.model.Jenkins <init>
WARNING: Failed to broadcast over UDP
java.net.BindException: Permission denied
        at java.net.PlainDatagramSocketImpl.bind0(Native Method)
        at java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:95)
        at java.net.DatagramSocket.bind(DatagramSocket.java:376)
        at java.net.MulticastSocket.<init>(MulticastSocket.java:172)
        at java.net.MulticastSocket.<init>(MulticastSocket.java:137)
        at hudson.UDPBroadcastThread.<init>(UDPBroadcastThread.java:69)
        at jenkins.model.Jenkins.<init>(Jenkins.java:822)
        at hudson.model.Hudson.<init>(Hudson.java:81)

Nov 20, 2013 8:15:24 PM hudson.plugins.openshift.OpenShiftCloud provision
INFO: Provisioning new node for workload = 2 and label = null
Nov 20, 2013 8:15:24 PM hudson.plugins.openshift.OpenShiftCloud provision
INFO: Cancelling build - Label is null
Nov 20, 2013 8:15:24 PM hudson.plugins.openshift.OpenShiftCloud cancelBuild
INFO: Cancelling build
Nov 20, 2013 8:15:24 PM hudson.plugins.openshift.OpenShiftCloud cancelItem
INFO: Cancelling Item 
Nov 20, 2013 8:15:24 PM hudson.plugins.openshift.OpenShiftCloud cancelItem
WARNING: Build null rawbldr has been canceled
Nov 20, 2013 8:15:24 PM hudson.triggers.SafeTimerTask run
SEVERE: Timer task hudson.slaves.NodeProvisioner$NodeProvisionerInvoker@72d6dc failed
java.lang.UnsupportedOperationException: No Label
        at hudson.plugins.openshift.OpenShiftCloud.provision(OpenShiftCloud.java:391)
        at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:264)
        at hudson.slaves.NodeProvisioner.access$000(NodeProvisioner.java:51)
        at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:345)
        at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54)
        at java.util.TimerThread.mainLoop(Timer.java:555)
        at java.util.TimerThread.run(Timer.java:505)

</pre>

Comment 1 Dan Mace 2013-11-21 20:32:55 UTC
Ragunath,

In the default configuration for a new Jenkins instance on OpenShift, the number of executors for the master node is set to zero. Because of this, all jobs will attempt to run on a provisioned slave via the OpenShift Jenkins plugin, which is only compatible with jobs targetting an OpenShift application setup.

To run a freestyle job without using an OpenShift slave node, you'll need to go to the Jenkins configuration and increase the number of executors to a non-zero value, and then configure each of your jobs using the `Restrict where this project can be run` option. For instance, setting this value to `master` would allow your job to execute directly on the Jenkins instance. If you set up different types of slave provisioners which are compatible with your jobs, you can configure the OpenShift application jobs to execute only on OpenShift slaves, and your other jobs to execute only on non-OpenShift slaves using this pattern.

I'm closing this as NOTABUG because the issue is configuring Jenkins itself to suit your needs rather than a bug in OpenShift or its slave provisioner (this error is expected if you attempt to run a non-OpenShift job through the OpenShift provisioner).

Comment 2 Aidan Delaney 2014-01-22 16:35:24 UTC
I can get the same error when trying to run a maven build of a git project
SEVERE: Timer task hudson.slaves.NodeProvisioner$NodeProvisionerInvoker@1004c31 failed
java.lang.UnsupportedOperationException: No Label
	at hudson.plugins.openshift.OpenShiftCloud.provision(OpenShiftCloud.java:391)
	at hudson.slaves.NodeProvisioner.update(NodeProvisioner.java:264)
	at hudson.slaves.NodeProvisioner.access$000(NodeProvisioner.java:51)
	at hudson.slaves.NodeProvisioner$NodeProvisionerInvoker.doRun(NodeProvisioner.java:345)
	at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54)
	at java.util.TimerThread.mainLoop(Timer.java:555)
	at java.util.TimerThread.run(Timer.java:505)

I have to provide a "Restrict where this project can be run" to get rid of the error.  However, even after that I can't get the thing to run a build.

I've run Jenkins on bare metal and on AWS and have not run into this issue, so I suspect it's the openshift integration.


Note You need to log in before you can comment on or make changes to this bug.