-
Bug
-
Resolution: Fixed
-
Critical
-
CentOS 6, Jenkins v 1.595
-
Powered by SuggestiMate
When we click more link on a job to see other builds the browser freezes and prompts saying javascript is taking too long to execute. I started seeing after upgrading to 1.595 unfortunately i cannot recall what version i was on before.
We see a similar issue when we go to a job that has a lot of jobs in the pending queue. We are not able to scroll on the screen.
- depends on
-
JENKINS-33589 Build history widget does not refresh status of Pipeline build which finishes after Jenkins restart
-
- Open
-
-
JENKINS-27919 Split HistoryWidget from core
-
- Open
-
- is duplicated by
-
JENKINS-27226 Clicking More button on build history makes web page unresponsive and never loads
-
- Resolved
-
- is related to
-
JENKINS-30899 Build History order not sorted properly
-
- Resolved
-
-
JENKINS-26571 Job page becomes un responsive when there are a lot of builds in the queue
-
- Open
-
[JENKINS-26445] Browser freezes when clicking more link on a job to see other builds
I have tried various browsers Firefox, Chrome, Safari and the client is running Max 10.10.1
The job config allows 2k but i don't know how many exist right now. Is there a WS call that can return the current total?
/job/JOBNAME/api/xml?xpath=count%28*/build%29, but you may need to install the Secure Requester Whitelist Plugin to allow this XPath request.
Alternatively, /job/JOBNAME/api/xml?tree=builds and count the number of <build/> elements (lines, basically) in the returned XML.
/job/JOBNAME/api/xml?tree=builds
returns 100 lines. however i believe we have a lot more than that.
When i do RSS of all i get about 694 items.
Try ?tree=allbuilds (or allBuilds) instead. There's some performance optimization to prevent excessive loading of builds.
So the issue is performance with a very large number of builds. The changes implemented in recent Jenkins make the build history display much better when build names or multiple badges are used, at the cost of additional processing. And I'm fairly sure we want to keep it, as it was pretty bad in some situations before.
A possible solution would be to change how 'more' works to only reveal an additional 50-100 builds each time rather than all of them, assuming the problem is the number of newly added builds to the list, rather than their total number.
I pinged tfennelly about this, who did all the recent work on the build history widget.
Today we have about 807 (using api/xml?tree=allBuilds) jobs.
Also we noticed if a job has a lot of builds in queue (100 builds Waiting for executors to free up) and you go to the job page of the job waiting for executors scrolling comes to a standstill as well trying to do another build etc. Basically any interaction on the job page became super slow.
Any updates? At this point we are looking in to downgrading jenkins as this severely impacts productivity of our team. Even when there are only a few hundred jobs browser becomes un responsive.
Hi Arpit. Sorry about this. I am looking into it now.
I actually did test this back when I was rejigging things with the build history widget to make it layout a bit better, in that, I created a test job that had a few hundred builds and, to be honest, I could not notice a difference between performance of the new and old layout code. It was dog slow in either case !
How that history widget works is a bit insane anyway. Rendering anything more than 50 or so jobs seems bad UX to me from may perspectives (performance, navigation etc).
I think what Daniel says re the more button only showing a few more builds makes sense. In fact, I would go a step further and implement a paging mechanism whereby you have your standard "Prev" and "Next" buttons in the history widget and you never display more than 50 or so builds. I'm sure someone will have an issue with that though
Thanks for looking into this @Tom
Pagination makes sense to me but i agree there will be some one who does not like it .
Also do you think the issues on the build page are related to this? What we see is if you have a lot of builds in queue and i select build now with parameters 2 things happen
1. The scroll bar keeps getting reset to the top
2. Scrolling in general becomes really slow.
Let me know if that should be tracked in a separate bug.
Arpit, I think any other issues should be tracked in a separate JIRA. You can always reference this one suggesting the issues might be related. Don't forget to mention the Jenkins version number etc in case the issue has already been fixed (maybe try latest release if you can) etc.
Pagination has the problem that it's not just historical info but also queued and currently running build. So you could completely miss builds by being on page 2, despite AJAX. Plus, build to page mappings will change (shift) rapidly if builds are quick and frequent.
Daniel: that would seem right to me tbh. Would be the reverse analogy of tailing a log i.e. once you move away from the tail you stop tailing it. Once you move away from the top of the build history you stop checking for updates until you go back to the top.
Bottom line... you can't have your cake and eat it
Posted a request for opinions to the dev list: https://groups.google.com/forum/?hl=en#!topic/jenkinsci-dev/NK_1ALzC6bg
I upgrade to 1.598 and now when i click configure i get
A script on this page may be busy, or it may have stopped responding. You can stop the script now, open the script in the debugger, or let the script continue. Script: http://IP:8080/adjuncts/19e9c96a/org/kohsuke/stapler/codemirror/lib/codemirror.js:1737
Added it here in case they are related. Also added the same message to the related bug.
Here is another use case for the more widget. I have seen scenario's where the job page shows no running jobs but there is a build running. It did not make the default number of builds we show on the job page. It would be nice if we a running jobs widget also. Let me know if you think this should be tracked in a different enhancement ticket.
Code changed in jenkins
User: Tom Fennelly
Path:
core/src/main/java/hudson/model/Queue.java
core/src/main/java/hudson/model/Run.java
core/src/main/java/hudson/model/queue/WorkUnit.java
test/src/test/java/hudson/model/QueueTest.java
test/src/test/resources/hudson/model/QueueTest/recover_from_legacy_list.zip
http://jenkins-ci.org/commit/jenkins/e88bf5694b7f64c833cc991447d511a964c10683
Log:
Merge pull request #1566 from tfennelly/JENKINS-26445
Permanently valid Queue.Item.id
Compare: https://github.com/jenkinsci/jenkins/compare/419d670cd0f6...e88bf5694b7f
Created PR #1641 around efforts to address the issue of huge build histories. Hopefully there'll be a CI build available soon (from CI PR builder).
Please try this out and let us know what works, doesn't work, is missing etc
Thanks Tom. Will keep an eye out for a new release with this fix in and try it out.
Ah i see. Let me see how i can test this out. I am little hesitant to put a new war in our production instance so will probably setup a test instance where i can play with this release.
@Arpit for sure ... just download that CI build and test it in a test environment and at least provide some initial feedback. It would be great if we could have a test run against some real data too though so as to test the performance. Do you have a Staging environment where you can test using a clone of some real data?
Unfortunately not . Have various jenkins masters but they are all production instances. When i mean production they are not externally facing. Its a production instance for our QE group.
@Arpit Can you make a copy of it (or part of it containing an interesting build)?
Thats a good idea. We are already running backup of jenkins (without the build info) i can use that to set on up and just copy over the builds. Will try to get that running this week.
Thanks Arpit. Would it be possible for us to do a screenshare when you are testing so I can see it in action? Skype, Hangouts or whatever would be good.
Once i have it setup will update the jira with the details. BTW new downloads of jenkins are failing. Logged INFRA-270
Ok i have the instance setup. @Tom what time zone are you in? We can figure out a time that works for both.
Here is my feedback most of its nice to have as i would use this as is. (Have not tried running builds yet to see how this works with that). Love the search feature and works like a charm.
1. Does it make sense to have pagination links available at the top and bottom and with numbers like page 1 of x and total build count displayed and available etc. Do not know what is best way to display it but feel like having that info is useful
2. Does it make sense to show running builds in its own module and completed builds in its own? We can use the search feature also. As i have seen cases where we have had x builds run and are shown and a running build will be on a different page. We can easily just search for it but thought i would bring it up. Since its not a regression from earlier behavior i can log a different jira.
3. Adding some validation when the user does not provide the expected search format will be good to have.
All in all this is great. Now when can i get it in the released artifact .
Oh and here is another
4. Allow the user to define how many builds per page. Ideally defaults defined at jenkins config level and allow override at job level. The defaults can be what the defaults are today.
4. Allow the user to define how many builds per page. Ideally defaults defined at jenkins config level and allow override at job level. The defaults can be what the defaults are today.
Should probably be postponed until it works well and we see whether there's an actual need for this. I cannot remember anybody requesting a different number of builds shown by default for the current UI, so my guess is this is not really necessary.
Makes sense. I would say all my points except for #3 probably can be done as improvements based on larger feedback. Even #3 is not that big a deal.
@Arpit thanks for the feedback. It seems like there are objections to these changes in their current form (see the PR) so we might have to go back to the drawing board. I'm committed to a load of other work too (was doing this in spare 10 mins here and there) so, unless this is a big issue for you, we might have to put it on ice for a while until there's some sort of consensus (among the people that have the problem) re how best to address it.
Thanks Tom i added my 2c to the pull request. Lets see if that helps .
Also have this problem when there is a long list of builds. Firefox developer tools console logs:
Error: Script terminated by timeout at:
Element.Methods.removeClassName@https://server:8080/static/63938483/scripts/prototype.js:2371:9
getElementOverflowParams@https://server:8080/static/63938483/scripts/hudson-behavior.js:1952:5
checkRowCellOverflows@https://server:8080/static/63938483/scripts/hudson-behavior.js:1693:37
checkAllRowCellOverflows@https://server:8080/static/63938483/scripts/hudson-behavior.js:1883:13
updateBuilds/<.onSuccess@https://server:8080/static/63938483/scripts/hudson-behavior.js:1927:21
Ajax.Request<.respondToReadyState@https://server:8080/static/63938483/scripts/prototype.js:1655:10
Ajax.Request<.onStateChange@https://server:8080/static/63938483/scripts/prototype.js:1600:7
bind/<@https://server:8080/static/63938483/scripts/prototype.js:414:14
Hi,
Dirty hack to get whole build history is appending buildHistory/all to the job name in URL. And it show whole history without CSS style as it response is <div> element which is used in jenkins.
I found that Jenkins 1.593 introduce those changes that crash web browser. It seems that there is some JS issue.
P.S.
I have made simple PHP script which wrapps buildhistory/all and adds CSS to it. I will add it later.
One will have to replace with it's own values:
- <yourjenkins_addr> jenkins address
- <place_in_memory> probably that is name of cell in memory where css and js files are visible, you need to check you running jenkins instance source to find correct value e.g
href="/static/454a6933/css/style.css"
Additional remark, user can add link to this php script and script will get job name from referre section or you can add name variable. e.g:
buildhistory.php?name=my_job_name
<html> <head> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/style.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/color.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/css/responsive-grid.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/container/assets/container.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/assets/skins/sam/skin.css"> <link rel="stylesheet" type="text/css" href="http://<yourjenkins_addr>/static/<place_in_memory>/scripts/yui/container/assets/skins/sam/container.css"> <style> .col-xs-24 { width: 300px; } .row { margin-right: -15px; margin-left: -15px; width: 300px; } </style> </head> <body> <?php $from_who = end(explode("/",rtrim(($_SERVER["HTTP_REFERER"]),"/"))); if(isset($_GET['name'])) { $job_name = htmlspecialchars($_GET["name"]); } else{ $job_name = $from_who; } if ($job_name != "" ){ $content = file_get_contents("http://<yourjenkins_addr>/job/".$job_name."/buildHistory/all"); $content = str_replace("src=\"/static", "src=\"http://<yourjenkins_addr>/static", $content); $content = str_replace("href=\"/job", "href=\"http://<yourjenkins_addr>/job", $content); print $content; } else{ print "Error occured ! No information about job name.<br><br> Try to add to buildhistory.php<b>?name=<jobname></b>"; } ?> </body> </html>
Hi,
function checkAllRowCellOverflows(); is the reason that for big amount of builds web browser can't handle operations which are introduced in that function. Changes were done to correct Build History layout. (issue 25381, issue 25393, issue 24687, issue 24589)
I commented those lines and clicking more in build history provides proper output.
diff --git a/war/src/main/webapp/scripts/hudson-behavior.js b/war/src/main/webapp/scripts/hudson-behavior.js index 270ab19..9a8b6a2 100644 --- a/war/src/main/webapp/scripts/hudson-behavior.js +++ b/war/src/main/webapp/scripts/hudson-behavior.js @@ -1924,7 +1924,7 @@ function updateBuildHistory(ajaxUrl,nBuild) { bh.headers = ["n",rsp.getResponseHeader("n")]; window.setTimeout(updateBuilds, updateBuildsRefreshInterval); - checkAllRowCellOverflows(); + //checkAllRowCellOverflows(); } }); } else { @@ -1934,9 +1934,9 @@ function updateBuildHistory(ajaxUrl,nBuild) { } window.setTimeout(updateBuilds, updateBuildsRefreshInterval); - onBuildHistoryChange(function() { - checkAllRowCellOverflows(); - }); + //onBuildHistoryChange(function() { + // checkAllRowCellOverflows(); + //}); } function getElementOverflowParams(element) {
This isn't a solution but quick check (PoC). I checked the checkAllRowCellOverflows code and there are HTML/DOM/website element manipulations which cause that web browser for many builds can't handle it (add element, remove element, add once again element and remove once again). My test job has 25k of builds in the history.
Important
Here comes the biggest question. With adding checkAllRowCellOverflows in the Jenkins there is now limitation for buildhistory which can be shown in web browser or rather to say what amount of data web browser can handle with this JS.
Is there any Jenkins page with good practices or general rules for leaving builds history ? Should we start some discussion on this ?
P.S.
I will try to do some tests (how much time and how many operations this function do) to have data on which we could discuss or maybe find place what can be improved.
There's a proposal to add pagination and search/filtering to the builds widget which would resolve this issue by not showing a single long list of everything ever.
Hi Daniel,
Did Tom contact you with finding from last week ?
For correct builds in build.xml there is <queueId> _ build ID number_ </queueId> where for old builds there is value =-1 and Tom's improvement doesn't work.
winotu Right. Doesn't invalidate the entire approach though I think. It's a work in progress after all.
As Daniel says, this is a WiP and the issue Chris is having is just something that needs fixing. I never got back to it because of other work commitments.
Anyway, I think the issue Chris is seeing is related to the implementation of the HistoryPageEntry.getEntryId method. It seems like it is returning Run.QUEUE_ID_UNKNOWN (i.e. -1) when asked for a queueId of an "old" run. By "old" I mean a Run that predates the Jenkins core changes to map Queue.Item.Id onto Run (so as to allow tracking from build queue Item to the subsequent Run instance).
The HistoryPageEntry.getEntryId method is implemented such that it should "fake" a queue ID for a Run instance that doesn't have one (i.e. predating the JENKINS-27096 changes). It is supposed to fake it via Integer.MIN_VALUE + run.getNumber() i.e. using the Run's number. From what Chris told me on IRC, it sounds as though this is not happening in his case. Instead, it sounded like Run.QUEUE_ID_UNKNOWN was being returned from the last block. That seems really strange though as it means the entry instance is neither a Queue.Item or Run instance (I can't see how it could be null). Anyway, it seems like a debugger needs to be connected to this code to see what's happening.
Thanks Tom for comments, I will prepare test workspace to recreate my issue with old workspace structure.
P.S.
For those who has running Jenkins instance you can comment out the javascript where Jenkins was unpacked e.g
${JETTY_HOME}/war/scripts/hudson-behavior.js
and after CTRL+F5, More should load whole history without crash.
This will work only until restart of Jenkins instance
P.S.2
Thx to my colleague that he pointed that to me.
May I suggest to reuse the method used to display the trend page ...
It seems to be cleverly written with progress bar if required ..
Or then make it a common method to display full list of builds ..
(even if I know, it is better to clean usefulness builds.)
Time checks from hudson-behavior.js @ checkAllRowCellOverflows();
Tested on :
i5 2,7GHz, 16GB RAM
For 100 builds in empty job:
Check rows overflow 1057 ms
insert zws in displayname 4,2 ms
For 1000 builds in empty job:
Check rows overflow 73089 ms
insert zws in displayname 35,1 ms
Additional checks (averge of 100 builds):
1st section 0,064565448 ms
2nd section 6,495219458 ms
reset section 0,33671727 ms
end section 2,153319466 ms
Where:
Check rows overflow:
for (var i = 0; i < rows.length; i++) { var row = rows[i]; checkRowCellOverflows(row); }
insert zws in displayname:
var displayNames = $(bh).getElementsBySelector('.display-name'); for (var i = 0; i < displayNames.length; i++) { insertZeroWidthSpacesInElementText(displayNames[i], 2); }
1st section:
1629: var displayName = $(buildName).getElementsBySelector('.display-name')[0]; var buildControls = $(row).getElementsBySelector('.build-controls')[0]; var desc; var descElements = $(row).getElementsBySelector('.desc'); if (descElements.length > 0) { desc = descElements[0]; }
2nd section:
1662: // Insert zero-width spaces so as to allow text to wrap, allowing us to get the true clientWidth. insertZeroWidthSpacesInElementText(displayName, 2); .... ..... if (nameOverflowParams.isOverflowed) { // If the name is overflowed, lets remove the zero-width spaces we added above and // re-add zero-width spaces with a bigger max word sizes. removeZeroWidthSpaces(displayName); insertZeroWidthSpacesInElementText(displayName, 20); 1684: }
reset section:
resetCellOverflows();
end section:
1751: if (nameOverflowParams.isOverflowed || detailsOverflowParams.isOverflowed) { ....... 1866: Element.addClassName(row, "overflow-checked");
I took a quick stab and was able to improve performance 4x, and submitted a PR: https://github.com/jenkinsci/jenkins/pull/1829. I tested some overflows with and without it and all appears well, though there could be edge cases I'm missing.
That said, a simple solution would also seem to be, since the button just says "More builds" to not load all builds, but just 50/100 more, and keep the button there so it can be clicked again. That's what I expected it to do anyway
I updated PR 1641. It supports pagination, as well as filtering (by a fuzzy matcher, or more fine-grained filter syntax).
Code changed in jenkins
User: tfennelly
Path:
changelog.html
cli/pom.xml
core/pom.xml
core/src/main/java/hudson/ExtensionListListener.java
core/src/main/java/hudson/FilePath.java
core/src/main/java/hudson/FileSystemProvisioner.java
core/src/main/java/hudson/FileSystemProvisionerDescriptor.java
core/src/main/java/hudson/Functions.java
core/src/main/java/hudson/PluginManager.java
core/src/main/java/hudson/PluginManagerStaplerOverride.java
core/src/main/java/hudson/PluginWrapper.java
core/src/main/java/hudson/cli/CloneableCLICommand.java
core/src/main/java/hudson/diagnosis/OldDataMonitor.java
core/src/main/java/hudson/model/AbstractProject.java
core/src/main/java/hudson/model/ChoiceParameterDefinition.java
core/src/main/java/hudson/model/Computer.java
core/src/main/java/hudson/model/DownloadService.java
core/src/main/java/hudson/model/Executor.java
core/src/main/java/hudson/model/Items.java
core/src/main/java/hudson/model/Job.java
core/src/main/java/hudson/model/Result.java
core/src/main/java/hudson/model/RunMap.java
core/src/main/java/hudson/model/Slave.java
core/src/main/java/hudson/model/UsageStatistics.java
core/src/main/java/hudson/node_monitors/AbstractNodeMonitorDescriptor.java
core/src/main/java/hudson/node_monitors/DiskSpaceMonitorDescriptor.java
core/src/main/java/hudson/org/apache/tools/tar/TarInputStream.java
core/src/main/java/hudson/org/apache/tools/tar/TarOutputStream.java
core/src/main/java/hudson/os/SU.java
core/src/main/java/hudson/scheduler/CronTab.java
core/src/main/java/hudson/scheduler/CronTabList.java
core/src/main/java/hudson/security/ACL.java
core/src/main/java/hudson/security/SecurityRealm.java
core/src/main/java/hudson/security/csrf/CrumbFilter.java
core/src/main/java/hudson/slaves/NodeProvisioner.java
core/src/main/java/hudson/slaves/SlaveComputer.java
core/src/main/java/hudson/tasks/Maven.java
core/src/main/java/hudson/tools/DownloadFromUrlInstaller.java
core/src/main/java/hudson/triggers/SCMTrigger.java
core/src/main/java/hudson/triggers/TimerTrigger.java
core/src/main/java/hudson/triggers/Trigger.java
core/src/main/java/hudson/util/ChartUtil.java
core/src/main/java/hudson/util/CopyOnWriteList.java
core/src/main/java/hudson/util/DoubleLaunchChecker.java
core/src/main/java/hudson/util/MultipartFormDataParser.java
core/src/main/java/hudson/util/PluginServletFilter.java
core/src/main/java/hudson/util/ProcessKillingVeto.java
core/src/main/java/hudson/util/ProcessTree.java
core/src/main/java/hudson/util/QuotedStringTokenizer.java
core/src/main/java/hudson/util/RobustCollectionConverter.java
core/src/main/java/hudson/util/RobustMapConverter.java
core/src/main/java/hudson/util/RobustReflectionConverter.java
core/src/main/java/hudson/util/SequentialExecutionQueue.java
core/src/main/java/hudson/util/io/TarArchiver.java
core/src/main/java/hudson/util/jna/DotNet.java
core/src/main/java/hudson/util/xstream/ImmutableListConverter.java
core/src/main/java/jenkins/model/BlockedBecauseOfBuildInProgress.java
core/src/main/java/jenkins/model/CauseOfInterruption.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/java/jenkins/model/JenkinsLocationConfiguration.java
core/src/main/java/jenkins/model/ParameterizedJobMixIn.java
core/src/main/java/jenkins/model/RunIdMigrator.java
core/src/main/java/jenkins/slaves/restarter/SlaveRestarter.java
core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java
core/src/main/java/jenkins/util/xstream/CriticalXStreamException.java
core/src/main/resources/hudson/model/AbstractBuild/changes.jelly
core/src/main/resources/hudson/model/AbstractBuild/index_pt_BR.properties
core/src/main/resources/hudson/model/AbstractBuild/index_pt_PT.properties
core/src/main/resources/hudson/model/AbstractBuild/sidepanel_pt_PT.properties
core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString.html
core/src/main/resources/hudson/model/AbstractProject/help-assignedLabelString_zh_TW.html
core/src/main/resources/hudson/model/AbstractProject/help-label.html
core/src/main/resources/hudson/model/AbstractProject/help-label_zh_TW.html
core/src/main/resources/hudson/model/Job/_api.jelly
core/src/main/resources/hudson/model/LoadStatistics/main.properties
core/src/main/resources/hudson/model/Messages.properties
core/src/main/resources/hudson/model/Messages_ca.properties
core/src/main/resources/hudson/model/Messages_da.properties
core/src/main/resources/hudson/model/Messages_de.properties
core/src/main/resources/hudson/model/Messages_es.properties
core/src/main/resources/hudson/model/Messages_fi.properties
core/src/main/resources/hudson/model/Messages_fr.properties
core/src/main/resources/hudson/model/Messages_hu.properties
core/src/main/resources/hudson/model/Messages_it.properties
core/src/main/resources/hudson/model/Messages_ja.properties
core/src/main/resources/hudson/model/Messages_nl.properties
core/src/main/resources/hudson/model/Messages_pt_BR.properties
core/src/main/resources/hudson/model/Messages_ru.properties
core/src/main/resources/hudson/model/Messages_sl.properties
core/src/main/resources/hudson/model/Messages_sv_SE.properties
core/src/main/resources/hudson/model/Messages_tr.properties
core/src/main/resources/hudson/model/Messages_zh_CN.properties
core/src/main/resources/hudson/model/Messages_zh_TW.properties
core/src/main/resources/hudson/node_monitors/DiskSpaceMonitor/column.jelly
core/src/main/resources/hudson/node_monitors/SwapSpaceMonitor/column.jelly
core/src/main/resources/hudson/node_monitors/TemporarySpaceMonitor/column.jelly
core/src/main/resources/hudson/slaves/SlaveComputer/systemInfo.jelly
core/src/main/resources/hudson/tools/InstallSourceProperty/help.html
core/src/main/resources/jenkins/model/CauseOfInterruption/ExceptionInterruption/summary.groovy
core/src/main/resources/jenkins/model/Messages.properties
core/src/main/resources/jenkins/model/Messages_ca.properties
core/src/main/resources/jenkins/model/Messages_da.properties
core/src/main/resources/jenkins/model/Messages_de.properties
core/src/main/resources/jenkins/model/Messages_es.properties
core/src/main/resources/jenkins/model/Messages_fi.properties
core/src/main/resources/jenkins/model/Messages_fr.properties
core/src/main/resources/jenkins/model/Messages_hu.properties
core/src/main/resources/jenkins/model/Messages_it.properties
core/src/main/resources/jenkins/model/Messages_ja.properties
core/src/main/resources/jenkins/model/Messages_nl.properties
core/src/main/resources/jenkins/model/Messages_pt_BR.properties
core/src/main/resources/jenkins/model/Messages_ru.properties
core/src/main/resources/jenkins/model/Messages_sl.properties
core/src/main/resources/jenkins/model/Messages_sv_SE.properties
core/src/main/resources/jenkins/model/Messages_tr.properties
core/src/main/resources/jenkins/model/Messages_zh_CN.properties
core/src/main/resources/jenkins/model/Messages_zh_TW.properties
core/src/main/resources/jenkins/security/s2m/filepath-filter.conf
core/src/main/resources/lib/form/dropdownDescriptorSelector.jelly
core/src/main/resources/lib/hudson/scriptConsole.properties
core/src/main/resources/lib/hudson/scriptConsole_da.properties
core/src/main/resources/lib/hudson/scriptConsole_de.properties
core/src/main/resources/lib/hudson/scriptConsole_es.properties
core/src/main/resources/lib/hudson/scriptConsole_fr.properties
core/src/main/resources/lib/hudson/scriptConsole_ja.properties
core/src/main/resources/lib/hudson/scriptConsole_ko.properties
core/src/main/resources/lib/hudson/scriptConsole_nb_NO.properties
core/src/main/resources/lib/hudson/scriptConsole_nl.properties
core/src/main/resources/lib/hudson/scriptConsole_pl.properties
core/src/main/resources/lib/hudson/scriptConsole_pt_BR.properties
core/src/main/resources/lib/hudson/scriptConsole_ru.properties
core/src/main/resources/lib/hudson/scriptConsole_sv_SE.properties
core/src/main/resources/lib/hudson/scriptConsole_zh_TW.properties
core/src/main/resources/lib/layout/layout.jelly
core/src/site/markdown/index.md
core/src/test/java/hudson/FilePathTest.java
core/src/test/java/hudson/UtilTest.java
core/src/test/java/hudson/model/ItemsTest.java
core/src/test/java/hudson/model/ParametersActionTest.java
core/src/test/java/hudson/triggers/SCMTriggerTest.java
core/src/test/java/hudson/triggers/TimerTriggerTest.java
core/src/test/java/hudson/util/ArgumentListBuilderTest.java
core/src/test/java/hudson/util/MultipartFormDataParserTest.java
core/src/test/java/jenkins/model/RunIdMigratorTest.java
plugins/pom.xml
pom.xml
test/pom.xml
test/src/main/java/com/gargoylesoftware/htmlunit/README.md
test/src/main/java/com/gargoylesoftware/htmlunit/WebClientUtil.java
test/src/main/java/com/gargoylesoftware/htmlunit/WebResponseListener.java
test/src/main/java/com/gargoylesoftware/htmlunit/html/DomNodeUtil.java
test/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlElementUtil.java
test/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlFormUtil.java
test/src/main/java/hudson/core/PluginManagerOverrideTest.java
test/src/main/java/org/jvnet/hudson/test/ExtractResourceSCM.java
test/src/main/java/org/jvnet/hudson/test/HudsonPageCreator.java
test/src/main/java/org/jvnet/hudson/test/HudsonTestCase.java
test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java
test/src/main/java/org/jvnet/hudson/test/junit/FailedTest.java
test/src/main/resources/hudson/core/PluginManagerOverrideTest/BasicPluginManagerOverride/newview.jelly
test/src/test/groovy/hudson/model/AbstractProjectTest.groovy
test/src/test/groovy/hudson/security/TokenBasedRememberMeServices2Test.groovy
test/src/test/groovy/jenkins/bugs/Jenkins19124Test.groovy
test/src/test/java/hudson/ExceptionTest.java
test/src/test/java/hudson/PluginTest.java
test/src/test/java/hudson/bugs/JnlpAccessWithSecuredHudsonTest.java
test/src/test/java/hudson/bugs/LoginRedirectTest.java
test/src/test/java/hudson/cli/ComputerStateTest.java
test/src/test/java/hudson/cli/SetBuildDisplayNameCommandTest.java
test/src/test/java/hudson/console/ConsoleAnnotatorTest.java
test/src/test/java/hudson/diagnosis/ReverseProxySetupMonitorTest.java
test/src/test/java/hudson/diagnosis/TooManyJobsButNoViewTest.java
test/src/test/java/hudson/model/AsynchPeopleTest.java
test/src/test/java/hudson/model/DirectlyModifiableViewTest.java
test/src/test/java/hudson/model/HelpLinkTest.java
test/src/test/java/hudson/model/HudsonTest.java
test/src/test/java/hudson/model/JobQueueTest.java
test/src/test/java/hudson/model/JobTest.java
test/src/test/java/hudson/model/ManagementLinkTest.java
test/src/test/java/hudson/model/MyViewsPropertyTest.java
test/src/test/java/hudson/model/ParametersTest.java
test/src/test/java/hudson/model/ProjectTest.java
test/src/test/java/hudson/model/QueueTest.java
test/src/test/java/hudson/model/SimpleJobTest.java
test/src/test/java/hudson/model/UserTest.java
test/src/test/java/hudson/model/ViewPropertyTest.java
test/src/test/java/hudson/model/ViewTest.java
test/src/test/java/hudson/model/queue/WideExecutionTest.java
test/src/test/java/hudson/search/SearchTest.java
test/src/test/java/hudson/security/LoginTest.java
test/src/test/java/hudson/security/pages/SignupPage.java
test/src/test/java/hudson/slaves/JNLPLauncherTest.java
test/src/test/java/hudson/slaves/NodePropertyTest.java
test/src/test/java/hudson/tools/JDKInstallerTest.java
test/src/test/java/hudson/util/AlternativeUiTextProviderTest.java
test/src/test/java/hudson/util/FormFieldValidatorTest.java
test/src/test/java/hudson/util/ProcessTreeKillerTest.java
test/src/test/java/hudson/util/RobustReflectionConverterTest.java
test/src/test/java/jenkins/model/JenkinsTest.java
test/src/test/java/jenkins/security/ApiTokenPropertyTest.java
test/src/test/java/jenkins/security/BasicHeaderProcessorTest.java
test/src/test/java/jenkins/security/FrameOptionsPageDecoratorTest.java
test/src/test/java/jenkins/security/RekeySecretAdminMonitorTest.java
test/src/test/java/jenkins/security/Security177Test.java
test/src/test/java/jenkins/widgets/BuildListTableTest.java
test/src/test/java/lib/form/AdvancedButtonTest.java
test/src/test/java/lib/form/ExpandableTextboxTest.java
test/src/test/java/lib/form/RepeatableTest.java
test/src/test/java/lib/form/RowSetTest.java
test/src/test/java/lib/form/RowVisibilityGroupTest.java
test/src/test/java/lib/form/ValidateButtonTest.java
test/src/test/java/lib/hudson/ListScmBrowsersTest.java
test/src/test/java/lib/layout/IconTest.java
test/src/test/java/lib/layout/LayoutTest.java
test/src/test/java/lib/layout/RenderOnDemandTest.java
test/src/test/java/lib/layout/TaskTest.java
test/src/test/java/org/jvnet/hudson/main/JenkinsRuleTimeoutTest.java
test/src/test/java/org/jvnet/hudson/main/UseRecipesWithJenkinsRuleTest.java
test/src/test/resources/lib/form/RowSetTest/Subject/test1.jelly
translation-tool.pl
war/pom.xml
war/src/main/webapp/css/style.css
war/src/main/webapp/help/project-config/custom-workspace.html
war/src/main/webapp/scripts/hudson-behavior.js
war/src/main/webapp/scripts/prototype.js
http://jenkins-ci.org/commit/jenkins/a305e3dc93ae087cc367fcda3fde87695322597f
Log:
Merge branch 'master' into JENKINS-26445-pagination-search
- master: (256 commits)
Noting #1817
Noting #1825
updated changelog for release
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] prepare release jenkins-1.629
JENKINS-30139Oleg wants to keep the data accessible so we have to go for immutable
JENKINS-30139Forgot to change this one
JENKINS-30139Add @Restricted to prevent external use of internal data
JENKINS-30139Switch from a big fat lock to a concurrent collection
JENKINS-30374 Update obsolete help message
updated changelog for release
[maven-release-plugin] prepare for next development iteration
[maven-release-plugin] prepare release jenkins-1.628
noting merge of PR#1816 - use slf4j interceptors
Manage commons-logging and log4j as provided, include slf4j adapters for tests.
Exclude commons-logging and log4j in dangerous scopes compile and runtime in plugins as well.
Only exclude commons-logging and log4j in dangerous scopes compile and runtime.
Reintroduce enforcer rules as suggested by @jtnord.
Document allBuilds for Job remote access API
Include slf4j-jdk14 during tests.
...
Conflicts:
war/src/main/webapp/scripts/hudson-behavior.js
Code changed in jenkins
User: tfennelly
Path:
.gitignore
changelog.html
cli/pom.xml
core/pom.xml
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_cs.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_da.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_de.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_es.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_et.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fi.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fr.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_hu.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_id.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_it.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ja.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ko.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lt.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lv.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nb_NO.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nl.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pl.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_BR.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_PT.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ru.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sk.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sl.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sv_SE.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_uk.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_CN.properties
core/src/filter/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_TW.properties
core/src/main/java/hudson/Functions.java
core/src/main/java/hudson/PluginManager.java
core/src/main/java/hudson/PluginWrapper.java
core/src/main/java/hudson/Util.java
core/src/main/java/hudson/cli/ReloadJobCommand.java
core/src/main/java/hudson/console/ConsoleLogFilter.java
core/src/main/java/hudson/model/AbstractItem.java
core/src/main/java/hudson/model/AbstractProject.java
core/src/main/java/hudson/model/Label.java
core/src/main/java/hudson/model/Queue.java
core/src/main/java/hudson/model/Run.java
core/src/main/java/hudson/model/TopLevelItemDescriptor.java
core/src/main/java/hudson/slaves/SlaveComputer.java
core/src/main/java/hudson/tasks/BuildWrappers.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/java/jenkins/triggers/ReverseBuildTrigger.java
core/src/main/resources/hudson/PluginManager/_table.js
core/src/main/resources/hudson/PluginManager/installed.jelly
core/src/main/resources/hudson/PluginManager/installed.properties
core/src/main/resources/hudson/cli/Messages.properties
core/src/main/resources/hudson/cli/Messages_pt_BR.properties
core/src/main/resources/hudson/model/Messages.properties
core/src/main/resources/hudson/model/Messages_pt_BR.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_cs.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_da.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_de.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_es.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_et.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fi.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_fr.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_hu.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_id.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_it.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ja.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ko.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lt.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_lv.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nb_NO.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_nl.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pl.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_BR.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_pt_PT.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_ru.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sk.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sl.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_sv_SE.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_uk.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_CN.properties
core/src/main/resources/hudson/model/UpdateCenter/CoreUpdateMonitor/message_zh_TW.properties
core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly
core/src/main/resources/lib/form/confirm.js
core/src/main/resources/lib/form/select/select.js
core/src/main/resources/lib/layout/layout.jelly
core/src/main/resources/lib/layout/task.jelly
core/src/test/java/hudson/FilePathTest.java
core/src/test/java/hudson/LauncherTest.java
core/src/test/java/hudson/util/IsOverriddenTest.java
core/src/test/java/hudson/util/ProcessTreeTest.java
plugins/pom.xml
pom.xml
test/pom.xml
test/src/main/java/org/jvnet/hudson/test/JenkinsRule.java
test/src/test/groovy/hudson/model/AbstractProjectTest.groovy
test/src/test/groovy/jenkins/model/PeepholePermalinkTest.groovy
test/src/test/java/hudson/PluginManagerInstalledGUITest.java
test/src/test/java/hudson/cli/DeleteJobCommandTest.java
test/src/test/java/hudson/cli/ReloadJobCommandTest.java
test/src/test/java/hudson/console/ConsoleLogFilterTest.java
test/src/test/java/hudson/model/DirectoryBrowserSupportTest.java
test/src/test/java/hudson/model/NodeTest.java
test/src/test/java/hudson/model/QueueTest.java
test/src/test/java/hudson/slaves/CommandLauncherTest.java
test/src/test/java/hudson/slaves/DummyCloudImpl.java
test/src/test/java/hudson/slaves/JNLPLauncherTest.java
test/src/test/java/hudson/tasks/EnvVarsInConfigTasksTest.java
test/src/test/java/hudson/tasks/ShellTest.java
test/src/test/java/hudson/tools/JDKInstallerTest.java
test/src/test/java/hudson/util/ProcessTreeKillerTest.java
test/src/test/java/jenkins/triggers/ReverseBuildTriggerTest.java
war/pom.xml
war/src/main/webapp/css/style.css
war/src/main/webapp/images/mask-icon.svg
http://jenkins-ci.org/commit/jenkins/2ec3ffcd534ede3039fa30c886ab8bcfb041b167
Log:
Merge branch 'master' into JENKINS-26445-pagination-search
Code changed in jenkins
User: Daniel Beck
Path:
core/src/main/java/hudson/widgets/BuildHistoryWidget.java
core/src/main/java/hudson/widgets/HistoryWidget.java
core/src/main/java/jenkins/widgets/HistoryPageEntry.java
core/src/main/java/jenkins/widgets/HistoryPageFilter.java
core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/ajaxBuildHistory.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/entries.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly
core/src/main/resources/jenkins/widgets/HistoryPageFilter/ajaxBuildHistory.jelly
core/src/main/resources/jenkins/widgets/HistoryPageFilter/entries.jelly
core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly
core/src/main/resources/lib/layout/pane.jelly
core/src/test/java/hudson/model/MockItem.java
core/src/test/java/jenkins/widgets/HistoryPageFilterTest.java
test/src/test/java/hudson/tasks/BuildTriggerTest.java
war/src/main/webapp/css/style.css
war/src/main/webapp/images/16x16/bullseye.png
war/src/main/webapp/images/16x16/find.png
war/src/main/webapp/images/16x16/go_down.png
war/src/main/webapp/images/16x16/go_up.png
war/src/main/webapp/scripts/hudson-behavior.js
http://jenkins-ci.org/commit/jenkins/5c66fcc6b0318ba151ab3a7fcfbd8ec68b5fea42
Log:
Merge pull request #1641 from tfennelly/JENKINS-26445-pagination-search
[FIX JENKINS-26445] Build history pagination and search
Compare: https://github.com/jenkinsci/jenkins/compare/ffc4cac1bc8f...5c66fcc6b031
Code changed in jenkins
User: Tom Fennelly
Path:
core/src/main/java/hudson/widgets/BuildHistoryWidget.java
core/src/main/java/hudson/widgets/HistoryWidget.java
core/src/main/java/jenkins/widgets/HistoryPageEntry.java
core/src/main/java/jenkins/widgets/HistoryPageFilter.java
core/src/main/resources/hudson/widgets/BuildHistoryWidget/entries.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/ajaxBuildHistory.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/entries.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/entry.jelly
core/src/main/resources/hudson/widgets/HistoryWidget/index.jelly
core/src/main/resources/jenkins/widgets/HistoryPageFilter/ajaxBuildHistory.jelly
core/src/main/resources/jenkins/widgets/HistoryPageFilter/entries.jelly
core/src/main/resources/jenkins/widgets/HistoryPageFilter/queue-items.jelly
core/src/main/resources/lib/layout/pane.jelly
core/src/test/java/hudson/model/MockItem.java
core/src/test/java/jenkins/widgets/HistoryPageFilterTest.java
test/src/test/java/hudson/tasks/BuildTriggerTest.java
war/src/main/webapp/css/style.css
war/src/main/webapp/images/16x16/bullseye.png
war/src/main/webapp/images/16x16/find.png
war/src/main/webapp/images/16x16/go_down.png
war/src/main/webapp/images/16x16/go_up.png
war/src/main/webapp/scripts/hudson-behavior.js
http://jenkins-ci.org/commit/jenkins/1c2221b25951495aa3ca3f7962e863577a1dc5a4
Log:
Revert "JENKINS-26445 Build history pagination and search"
There's an issue with this because of the queue state persistence issue (JENKINS-30909).
tfennelly thanks for the fix. I notice this jira is referred 1.633 changelog. Does that have the fix for the issue JENKINS-30909?
arpitgupta 1.633 resolved this issue, but JENKINS-30909 resulted in a mess. 1.634 will determine order differently, see JENKINS-30899 and the 'upcoming changes' in 1.634. So JENKINS-30909 is still unresolved, but we're back to not using the data from it.
This is one of the warnings we get from browser
and