[JIRA] [core] (JENKINS-20019) deadlock in jenkins.model.Jenkins.setNodes

2015-11-30 Thread c...@cowlabs.com (JIRA)
Title: Message Title
 
 
 
 
 
 
 
 
 
 
  
 
 Charles Stephens commented on  JENKINS-20019 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
  Re: deadlock in jenkins.model.Jenkins.setNodes  
 
 
 
 
 
 
 
 
 
 
Jesse Glick has this code refactoring landed on LTS yet? 
 
 
 
 
 
 
 
 
 
 
 
 

 
 Add Comment 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 

 This message was sent by Atlassian JIRA (v6.4.2#64017-sha1:e244265) 
 
 
 
 
  
 
 
 
 
 
 
 
 
   





-- 
You received this message because you are subscribed to the Google Groups "Jenkins Issues" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] [prioritysorter-plugin] (JENKINS-27770) AdvancedQueueSorter call to sort violates the comparison contract

2015-04-06 Thread c...@cowlabs.com (JIRA)














































Charles Stephens
 created  JENKINS-27770


AdvancedQueueSorter call to sort violates the comparison contract















Issue Type:


Bug



Assignee:


Magnus Sandberg



Components:


prioritysorter-plugin



Created:


07/Apr/15 1:10 AM



Description:


At random times, jobs are unable to start builds and several exceptions are thrown in the log:


Apr 06, 2015 6:32:21 AM hudson.triggers.SafeTimerTask run
SEVERE: Timer task hudson.model.Queue$MaintainTask@5116dc28 failed
java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeForceCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:223)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at java.util.Collections.sort(Collections.java:217)
at jenkins.advancedqueue.sorter.AdvancedQueueSorter.sortBuildableItems(AdvancedQueueSorter.java:81)
at hudson.model.Queue.maintain(Queue.java:1021)
at hudson.model.Queue$MaintainTask.doRun(Queue.java:1994)
at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.j
ava:178)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293
)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)



The call to sortBuildableItems() calls the java.utils.Collections.sort() which had a change semantics from Java 6 to 7.  Specifically there is a contract constraint in compare() that requires that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y.

Since any two calls to getInQueueSince() will return different values for any BuildableItem object, it's possible that while the signs maybe the same, the absolute values are not and the exception is thrown.


// Sort
Collections.sort(items, new ComparatorBuildableItem() {
	public int compare(BuildableItem o1, BuildableItem o2) {
		float o1weight = getCalculatedWeight(o1);
		float o2weight = getCalculatedWeight(o2);
		if (o1weight  o2weight) {
			return 1;
		}
		if (o1weight  o2weight) {
			return -1;
		}
		return (int) (o1.getInQueueSince() - o2.getInQueueSince());
	}
});


There is a workaround by disabling timsort and reverting to the Java 6's mergesort using -Djava.util.Arrays.useLegacyMergeSort=true.  The problem longterm is that the legacy sorting algorithm might go away in a future release of Java.

Recommend changing the subtraction operation to a set of comparisons instead.




Environment:


java 1.7.0_65, core 1.565.3, prioritysorter-plugin 2.6






Project:


Jenkins



Priority:


Minor



Reporter:


Charles Stephens

























This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira







-- 
You received this message because you are subscribed to the Google Groups Jenkins Issues group.
To unsubscribe from this group and 

[JIRA] [build-flow] (JENKINS-24748) If running build is aborted, other concurrent and future builds don't run in executors.

2014-09-17 Thread c...@cowlabs.com (JIRA)














































Charles Stephens
 created  JENKINS-24748


If running build is aborted, other concurrent and future builds dont run in executors.















Issue Type:


Bug



Assignee:


Nicolas De Loof



Components:


build-flow



Created:


17/Sep/14 7:40 PM



Description:


When a build flow job is started on a node that was previously idle, then additional concurrent builds are started.  If the first build is aborted, then the other builds, and all subsequent concurrent builds no longer run in an executor on that node.

Steps to Reproduce

	Create a node which: has four or more executors, and the availability is set to "Take this slave on-line when in demand and off-line when idle."
	Create a free-style project job with a build step that calls "sleep 180"
	Create a build flow project which: has the "Flow run needs a workspace" set, starts a build of the job from the previous step, has "Execute concurrent builds if necessary" set, and is restricted to the node created in the first step.
	Confirm that the node created in the first step is idle and the slave agent has not started.
	Start a build.  Observe that it runs on one of the executors.
	Start another build.  Observe that it too runs on one of the executors.
	Cancel the first build.
	Observe that the second build is no longer running on an executor
	Start one or more jobs while the second job is also running and continue to observe them not running on any of the executors.



The builds no longer are returned when Computer.getExecutors() is called, but they are with Computer.getOneOffExecutors().




Environment:


core: 1.565.2

build flow plugin: 0.15






Project:


Jenkins



Priority:


Minor



Reporter:


Charles Stephens

























This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira







-- 
You received this message because you are subscribed to the Google Groups Jenkins Issues group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] [build-flow] (JENKINS-24748) If running build flow job is aborted, other concurrent and future builds don't run a node's executors.

2014-09-17 Thread c...@cowlabs.com (JIRA)














































Charles Stephens
 updated  JENKINS-24748


If running build flow job is aborted, other concurrent and future builds dont run a nodes executors.
















Change By:


Charles Stephens
(17/Sep/14 7:41 PM)




Summary:


Ifrunningbuild
flowjob
isaborted,otherconcurrentandfuturebuildsdontrun
in
anodes
executors.



























This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira







-- 
You received this message because you are subscribed to the Google Groups Jenkins Issues group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[JIRA] [build-flow] (JENKINS-21355) Build flow jobs do not respect throttling rules

2014-09-10 Thread c...@cowlabs.com (JIRA)














































Charles Stephens
 reopened  JENKINS-21355


Build flow jobs do not respect throttling rules
















The Jenkins wiki and GitHub say differently.





Change By:


Charles Stephens
(11/Sep/14 1:57 AM)




Resolution:


WontFix





Status:


Resolved
Reopened





Assignee:


NicolasDeLoof



























This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira







-- 
You received this message because you are subscribed to the Google Groups Jenkins Issues group.
To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-issues+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.