[JIRA] (JENKINS-52636) Gerrit triggered jobs getting delayed
Title: Message Title Hugo Ares commented on JENKINS-52636 Re: Gerrit triggered jobs getting delayed I investigated the issue as I am experiencing it in my own jenkins server and here are my findings. The issue only happens when Gerrit-Trigger is connected to a Gerrit server with a lot of activity(events). Even if Gerrit-Trigger uses a thread pool(with 3 threads by default) to process events, it cannot keep up, the queue of events to process grows until the build up causes delays in triggering the builds(can be few hours). Cranking up the number of threads does not really help as there is a major bottleneck in the Gerrit-Trigger code. The bottleneck is in GerritMissedEventsPlaybackManager.persist method. This method serialize to disk the last event received in order for the playback manager to know what is the last event processed and retrigger missed event while Gerrit-Trigger was down in case it goes down or the connection towards Gerrit is lost. The problem is that method is synchronized and called by the threads processing the events. So even if you have 100 receiving threads, they will all bottleneck in that method which is very slow as it does IO, this is even worst if Jenkins home is on NFS or any kind of slow volume. The stack trace in the description is not right, here is the stack traces of a blocked thread followed by the stack trace of the thread holding the lock: "Gerrit Worker EventThread_0" Id=62 Group=main BLOCKED on com.sonyericsson.hudson.plugins.gerrit.trigger.playback.GerritMissedEventsPlaybackManager@24996aa8 owned by "Gerrit Worker EventThread_1" Id=63 at com.sonyericsson.hudson.plugins.gerrit.trigger.playback.GerritMissedEventsPlaybackManager.persist(GerritMissedEventsPlaybackManager.java:455) - blocked on com.sonyericsson.hudson.plugins.gerrit.trigger.playback.GerritMissedEventsPlaybackManager@24996aa8 at com.sonyericsson.hudson.plugins.gerrit.trigger.playback.GerritMissedEventsPlaybackManager.gerritEvent(GerritMissedEventsPlaybackManager.java:300) at com.sonymobile.tools.gerrit.gerritevents.GerritHandler.notifyListener(GerritHandler.java:350) at com.sonymobile.tools.gerrit.gerritevents.GerritHandler.notifyListeners(GerritHandler.java:317) at com.sonyericsson.hudson.plugins.gerrit.trigger.JenkinsAwareGerritHandler.notifyListeners(JenkinsAwareGerritHandler.java:77) at com.sonymobile.tools.gerrit.gerritevents.workers.AbstractGerritEventWork.perform(AbstractGerritEventWork.java:46) at com.sonymobile.tools.gerrit.gerritevents.workers.AbstractJsonObjectWork.perform(AbstractJsonObjectWork.java:77) at com.sonymobile.tools.gerrit.gerritevents.workers.StreamEventsStringWork.perform(StreamEventsStringWork.java:67) at com.sonymobile.tools.gerrit.gerritevents.workers.EventThread.run(EventThread.java:66) at com.sonyericsson.hudson.plugins.gerrit.trigger.SystemEventThread.run(SystemEventThread.java:66) "Gerrit Worker EventThread_1" Id=63 Group=main RUNNABLE at com.thoughtworks.xstream.mapper.MapperWrapper.getConverterFromItemType(MapperWrapper.java:88) at com.thoughtworks.xstream.mapper.MapperWrapper.getConverterFromItemType(MapperWrapper.java:88) at com.thoughtworks.xstream.mapper.MapperWrapper.getConverterFromItemT
[JIRA] (JENKINS-52636) Gerrit triggered jobs getting delayed
Title: Message Title Hugo Ares commented on JENKINS-52636 Re: Gerrit triggered jobs getting delayed Scott Hebert Any chance you have time to fix this Add Comment This message was sent by Atlassian JIRA (v7.10.1#710002-sha1:6efc396) -- 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] (JENKINS-52636) Gerrit triggered jobs getting delayed
Title: Message Title Hugo Ares updated an issue Jenkins / JENKINS-52636 Gerrit triggered jobs getting delayed Change By: Hugo Ares Component/s: pipeline Component/s: script-security-plugin Add Comment This message was sent by Atlassian JIRA (v7.10.1#710002-sha1:6efc396) -- 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] (JENKINS-13770) StarTeam Plugin SCM Polling failing on Slave machines
Hugo Ares commented on JENKINS-13770 StarTeam Plugin SCM Polling failing on Slave machines fixed in commit https://github.com/hugares/starteam-plugin/commit/284cd2d3513b6cee735896ad12d48bc4287c977c 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
[JIRA] (JENKINS-13054) Starteam plugin error when executing checkout by label.
Hugo Ares commented on JENKINS-13054 Starteam plugin error when executing checkout by label. fixed in commit https://github.com/hugares/starteam-plugin/commit/0c82938f723d0597d4536f32de2dfd705b4deb8b 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
[JIRA] (JENKINS-13770) StarTeam Plugin SCM Polling failing on Slave machines
Hugo Ares resolved JENKINS-13770 as Fixed StarTeam Plugin SCM Polling failing on Slave machines Fixed in version 0.6.9 Change By: Hugo Ares (14/Dec/12 2:53 PM) Status: Open Resolved Resolution: Fixed 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
[JIRA] (JENKINS-13054) Starteam plugin error when executing checkout by label.
Hugo Ares resolved JENKINS-13054 as Fixed Starteam plugin error when executing checkout by label. Fixed in version 0.6.9 Change By: Hugo Ares (14/Dec/12 2:55 PM) Status: Open Resolved Resolution: Fixed 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
[JIRA] (JENKINS-13054) Starteam plugin error when executing checkout by label.
Hugo Ares closed JENKINS-13054 as Fixed Starteam plugin error when executing checkout by label. Change By: Hugo Ares (14/Dec/12 2:55 PM) Status: Resolved Closed 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
[JIRA] (JENKINS-13770) StarTeam Plugin SCM Polling failing on Slave machines
Hugo Ares closed JENKINS-13770 as Fixed StarTeam Plugin SCM Polling failing on Slave machines Change By: Hugo Ares (14/Dec/12 2:56 PM) Status: Resolved Closed 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
[JIRA] [gerrit-trigger] (JENKINS-22812) Be able to disable the Gerrit Trigger Build Schedule Delay value
Hugo Ares started work on JENKINS-22812 Be able to disable the Gerrit Trigger Build Schedule Delay value Change By: Hugo Ares (22/May/14 6:52 PM) Status: Open In Progress 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] [gerrit-trigger] (JENKINS-10709) multiple builds are triggered for one change in Gerrit
Hugo Ares commented on JENKINS-10709 multiple builds are triggered for one change in Gerrit This is fixed in 2.11.0 which is not released yet. Robert just created version 2.11.0-beta-1[1] so I guess we can expect a release soon. [1]https://github.com/jenkinsci/gerrit-trigger-plugin/tree/gerrit-trigger-2.11.0-beta-1 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/groups/opt_out.
[JIRA] [gerrit-trigger] (JENKINS-10709) multiple builds are triggered for one change in Gerrit
Hugo Ares edited a comment on JENKINS-10709 multiple builds are triggered for one change in Gerrit This is fixed in 2.11.0 which is not released yet. Robert just created version 2.11.0-beta-1[1] so I guess we can expect a release soon. [1]https://groups.google.com/forum/#!topic/jenkinsci-dev/K41zja0b5mo 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/groups/opt_out.
[JIRA] [gerrit-trigger] (JENKINS-10709) multiple builds are triggered for one change in Gerrit
Hugo Ares commented on JENKINS-10709 multiple builds are triggered for one change in Gerrit Vlad, have you tried the latest 2.11 beta(2.11.0-beta-4)? 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/groups/opt_out.
[JIRA] [core] (JENKINS-21768) @QueryParameter with doFillxyxItems is broken
Hugo Ares created JENKINS-21768 @QueryParameter with doFillxyxItems is broken Issue Type: Bug Assignee: Unassigned Components: core Created: 11/Feb/14 7:24 PM Description: In the gerrit-trigger plugin, we have a Describable. In the form, there is a select that gets populated using the doFillDefaultSlaveIdItems method but it requires the name of server so I used @QueryParameter("name"). I tested this new section against jenkins 1.480.3 since the plugin is compiling against that version and it works fine. When I tested against the latest lts (1.532.1) the serverName parameter of the doFillDefaultSlaveIdItems is always null. In the _javascript_ console, there is the following error: "Unable to find nearby name" in hudson-behavior.js. I isolated that the problem was introduced by this commit(1.526): commit bbaeade5231ca4116047fbd32b2f909a16a59b8d Author: Kohsuke Kawaguchi Date: Tue Jul 16 12:30:14 2013 -0700 this needs to happen at least after the rowset name/nameRef fixup happens. Since I don't think any other scripts depend on this one, I'm just giving it a low enough priority. The code is not in the gerrit-trigger master yet so but let me know if you need it, I could push it to my fork. Here is a sample of its jelly file: "post" action="" class="code-quote">"configSubmit" name="config"> ... "${%Name}"> "name" value="${it.name}"/> ... "${%Replication Events}"> "enableReplication" title="${%Enable Triggering On Replication}" checked="${it.config.replicationConfig.enableReplication}"> ... "enableSlaveSelectionInJobs" title="${%Allow Slave Selection in Job Configurations}" checked="${it.config.replicationConfig.enableSlaveSelectionInJobs}"> "${%Choose a default slave}" field="defaultSlaveId"> Here the method defined in the Descriptor: public ListBoxModel doFillDefaultSlaveIdItems(@QueryParameter("name") final String serverName) { ListBoxModel items = new ListBoxModel(); ... } Project: Jenkins Labels: regression Priority: Major Reporter: Hugo Ares 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/groups/opt_out.
[JIRA] [core] (JENKINS-21768) @QueryParameter with doFillxyxItems is broken
Hugo Ares commented on JENKINS-21768 @QueryParameter with doFillxyxItems is broken This commit is changing the behavior of the select to be executed after the rowset name/nameRef fixup(which has priority set to 43) by setting its priority to 1000. I tested by setting different priority to the select behavior and I get the javascritpt error as soon as I put the select behavior priority right after the name/nameRef one. I did not create a pull request because I would have ended up reverting kk's commit. I do not know how to fix this issue without reintroducing the problem that this commit was fixing. 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/groups/opt_out.
[JIRA] [core] (JENKINS-21768) @QueryParameter with doFillxyxItems is broken
Hugo Ares commented on JENKINS-21768 @QueryParameter with doFillxyxItems is broken Thanks for your input. I changed the form to use field attribute instead of name/value attributes and the problem is the same: In 1.480, it's working by using only the @QueryParameter("name"). In 1.509 and above: it's not working with only @QueryParameter("name"). It's working using combination of @QueryParameter("name") and @RelativePath("../..") but this is not working in 1.480. 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/groups/opt_out.
[JIRA] [core] (JENKINS-21768) @QueryParameter with doFillxyxItems is broken
Hugo Ares commented on JENKINS-21768 @QueryParameter with doFillxyxItems is broken You are right, the only reason I wanted to support 1.480 is because the gerrit-trigger is compiled against it. I already discussed with Robert Sandell(maintainer) to compile it against 1.509(ore more recent) but he is not ready yet to deploy latest LTS in their production environment. I will try again to see if we could release version 2.12.0 of gerrit-trigger with a dependency on jenkins 1.509 as you suggest. Otherwise, you gave me an idea, I could enable this feature only if running in a jenkins version of 1.509 and above. Thanks Hugo 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/groups/opt_out.
[JIRA] [core] (JENKINS-21768) @QueryParameter with doFillxyxItems is broken
Hugo Ares resolved JENKINS-21768 as Not A Defect @QueryParameter with doFillxyxItems is broken Change By: Hugo Ares (13/Feb/14 7:38 PM) Status: Open Resolved Resolution: Not A Defect 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/groups/opt_out.
[JIRA] [core] (JENKINS-21768) @QueryParameter with doFillxyxItems is broken
Hugo Ares commented on JENKINS-21768 @QueryParameter with doFillxyxItems is broken Robert is ok with bumping gerrit-trigger to Jenkins 1.509 so I will close this issue since the bug is in 1.480 and there is nothing to fix. 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/groups/opt_out.
[JIRA] [gerrit-trigger] (JENKINS-19951) Build to be kept in the queue until replication is complete to gerrit slave(s)
Hugo Ares updated JENKINS-19951 Build to be kept in the queue until replication is complete to gerrit slave(s) Change By: Hugo Ares (17/Feb/14 2:05 PM) Summary: Build to be kept in the queue until replication is complete to gerrit mirror slave (s) Description: This feature will allow an administrator to configure gerrit-trigger to wait for the replication to one or more gerrit mirror( slave (mirror ) to be completed before the build get assigned to an executor.Problematic:If gerrit-trigger is used in a setup where there is a Gerrit master and mirror(s), gerrit-trigger is listening for Gerrit event on the master and triggering the build accordingly but, most of the time, the build will be executed and will try to pull the change from the mirror before Gerrit is done replicating the change to the mirror which is causing the build to fail.Solution:If gerrit-trigger is configured to wait for one or more mirror slave , the gerrit event will create the build and it will get queued but gerrit-trigger will also veto if the build can run depending if the replication is done to that mirror slave . The user would see that the build is in queue and a message like: waiting for replication to < mirror_name slave_name >. Not all types of gerrit event need to be replicated to mirror, here is the list of event that do need to wait replication: patchset create, change merger and ref updated.Gerrit currently does not publish replication event but I am working on adding this feature to gerrit. 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/groups/opt_out.
[JIRA] [gerrit-trigger] (JENKINS-19951) Build to be kept in the queue until replication is complete to gerrit slave(s)
Hugo Ares commented on JENKINS-19951 Build to be kept in the queue until replication is complete to gerrit slave(s) Replication events are published in Gerrit 2.9. For Gerrit-Trigger, I submited a pull request which add this feature: https://github.com/jenkinsci/gerrit-trigger-plugin/pull/133. 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/groups/opt_out.
[JIRA] [gerrit-trigger] (JENKINS-19951) Build to be kept in the queue until replication is complete to gerrit slave(s)
Hugo Ares resolved JENKINS-19951 as Fixed Build to be kept in the queue until replication is complete to gerrit slave(s) implemented in gerrit trigger version 2.12.0 Change By: Hugo Ares (27/Feb/14 9:12 PM) Status: In Progress Resolved Resolution: Fixed 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/groups/opt_out.