Great news! Thank you for the update and making this happen!

On Tue, Jul 14, 2020 at 1:09 AM Tobiasz Kędzierski <
tobiasz.kedzier...@polidea.com> wrote:

> I think the experiment went quite well.
> Now all nodes have the increased number of the executors [1]..
> Canceling Jenkins builds after PR updates seems to work as well. Queue is
> usually very short.
>
> [1]: https://ci-beam.apache.org/label/beam/load-statistics?type=hour
>
> BR
> Tobiasz
>
> On Mon, Jul 6, 2020 at 4:52 PM Tyson Hamilton <tyso...@google.com> wrote:
>
>> How did the experiment go? The load status graphs on the executors seem
>> to show no increase in queued jobs [1]. There is a periodic bump every 6h,
>> possibly due to cron firing off a bunch at the same time, that can also be
>> seen by changing the timepsan in [1]. The number of executors on 1/4 of the
>> nodes was also increased so the combination of these things make contention
>> to appear quite low or even non-existent.
>>
>> [1]: https://ci-beam.apache.org/label/beam/load-statistics?type=hour
>>
>> On Mon, Jun 29, 2020 at 9:17 AM Tobiasz Kędzierski <
>> tobiasz.kedzier...@polidea.com> wrote:
>>
>>> Hi
>>>
>>> Agree with Ahmet, that even in that shape it should improve the queue
>>> length. Both _Commit/_Phrase cross-cancelling and "cancell all" phrase seem
>>> require much effort and I doubt it's worthy to do it.
>>>
>>> I will turn on `Cancel build on update` in ghprb-plugin on
>>> ci-beam.apache.org tomorrow (Tuesday).
>>>
>>> Some discussions related to job filtering issue (or feature) in
>>> ghprb-plugin:
>>> https://github.com/jenkinsci/ghprb-plugin/issues/678
>>> https://github.com/jenkinsci/ghprb-plugin/pull/680
>>>
>>> BR
>>> Tobiasz
>>>
>>> On Fri, Jun 26, 2020 at 2:07 AM Ahmet Altay <al...@google.com> wrote:
>>>
>>>>
>>>>
>>>> On Thu, Jun 25, 2020 at 4:27 PM Tobiasz Kędzierski <
>>>> tobiasz.kedzier...@polidea.com> wrote:
>>>>
>>>>> Andrew thanks for great analysis +1
>>>>> This bug with job filtering seems to be crucial to keep _Commit and
>>>>> _Phrase separate.
>>>>>
>>>>> I was considering the situation where the two PRs with the same commit
>>>>> hash are created. I created an artificial situation where two branches are
>>>>> identical and then two PRs with them. Two separate jobs were triggered. As
>>>>> you wrote, due to the matching GH status by job name and hash, both PR
>>>>> statuses were pointing to the same job (the newest one, which was wrong 
>>>>> for
>>>>> one PR). As i tested, adding a new commit which will cancel the previous
>>>>> build would show false status on the PR with the previously wrong job 
>>>>> link.
>>>>> It is possible to reproduce it, but could you give the real life
>>>>> situation where two jobs would be triggered with the same commit?
>>>>> I am asking because I think that enabling `Cancel build on update` may
>>>>> greatly improve Jenkins queue and it would be worthwhile to sacrifice this
>>>>> rare and unlikely case for it (if it is rare and unlikely case of course).
>>>>>
>>>>
>>>> I agree with this.
>>>>
>>>>
>>>>>
>>>>> Ahmet, I think the cancelling _Commit build by following _Phrase
>>>>> should be handled within ghprb-plugin if possible. I am not sure if we can
>>>>> make some workaround. Do you have any suggestions how we may solve it?
>>>>>
>>>>
>>>> I do not know jenkins enough to be able to make a good suggestion. We
>>>> can try:
>>>> - If it is possible to do this with ghprb plugin as you suggested, we
>>>> can do that.
>>>> - If not, we can make _Commit jobs cancel _Commit jobs only and _Phrase
>>>> jobs cancel _Phrase jobs only. It will still be an improvement.
>>>>
>>>>
>>>>>
>>>>> BR
>>>>> Tobiasz
>>>>>
>>>>> On Wed, Jun 24, 2020 at 12:28 AM Kenneth Knowles <k...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> +1 to Andrew's analysis
>>>>>>
>>>>>> On Tue, Jun 23, 2020 at 12:13 PM Ahmet Altay <al...@google.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Would it be possible to cancel any running _Phrase or _Commit
>>>>>>> variants, if either one of them is triggered?
>>>>>>>
>>>>>>> On Tue, Jun 23, 2020 at 10:41 AM Andrew Pilloud <apill...@google.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> I believe we split _Commit and _Phrase to work around a bug with
>>>>>>>> job filtering. For example, when you make a python change only the 
>>>>>>>> python
>>>>>>>> tests are run based on the commit. We still want to be able to run the 
>>>>>>>> java
>>>>>>>> jobs by trigger phrase if needed. There are also performance tests 
>>>>>>>> (Nexmark
>>>>>>>> for example) that have different jobs to ensure PR runs don't end up
>>>>>>>> published in the performance dashboard, but i think those have a split 
>>>>>>>> of
>>>>>>>> _Phrase and _Cron.
>>>>>>>>
>>>>>>>> As for canceling jobs, don't forget that the github status APIs are
>>>>>>>> keyed on commit hash and job name (not PR). It is possible for a 
>>>>>>>> commit to
>>>>>>>> be on multiple PRs and it is possible for a single PR to have
>>>>>>>> multiple commits. There are workflows that will be broken if you are 
>>>>>>>> keying
>>>>>>>> off of a PR to automatically cancel jobs.
>>>>>>>>
>>>>>>>> On Tue, Jun 23, 2020 at 9:59 AM Tyson Hamilton <tyso...@google.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> +1 the ability to cancel in-flight jobs is worth deduplicating
>>>>>>>>> _Phrase and _Commit. I don't see a benefit for having both.
>>>>>>>>>
>>>>>>>>> On Tue, Jun 23, 2020 at 9:02 AM Luke Cwik <lc...@google.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I think this is a great improvement to prevent the Jenkins queue
>>>>>>>>>> from growing too large and has been suggested in the past but we were
>>>>>>>>>> unable to do due to difficulty with the version of the ghrpb plugin 
>>>>>>>>>> that
>>>>>>>>>> was used at the time.
>>>>>>>>>>
>>>>>>>>>> I know that we created different variants of the tests because we
>>>>>>>>>> wanted to track metrics based upon whether something was a post 
>>>>>>>>>> commit
>>>>>>>>>> (_Cron suffix) vs precommits but don't know why we split _Phrase and
>>>>>>>>>> _Commit.
>>>>>>>>>>
>>>>>>>>>> On Tue, Jun 23, 2020 at 3:35 AM Tobiasz Kędzierski <
>>>>>>>>>> tobiasz.kedzier...@polidea.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi everyone,
>>>>>>>>>>>
>>>>>>>>>>> I was investigating the possibility of canceling Jenkins builds
>>>>>>>>>>> when the update to PR makes prior build irrelevant. (related to
>>>>>>>>>>> https://issues.apache.org/jira/browse/BEAM-3105)
>>>>>>>>>>> In the `GitHub Pull Request Builder Jenkins plugin
>>>>>>>>>>> [ghprb-plugin] there is a hidden option `Cancel build on update` 
>>>>>>>>>>> that seems
>>>>>>>>>>> to work fine.
>>>>>>>>>>> e.g.
>>>>>>>>>>>
>>>>>>>>>>>    1.
>>>>>>>>>>>
>>>>>>>>>>>    I make a PR
>>>>>>>>>>>    2.
>>>>>>>>>>>
>>>>>>>>>>>    ghprb-plugin triggers  beam_PreCommit_PythonLint_Commit
>>>>>>>>>>>    3.
>>>>>>>>>>>
>>>>>>>>>>>    I make a new commit to the PR
>>>>>>>>>>>
>>>>>>>>>>>    4.
>>>>>>>>>>>
>>>>>>>>>>>    ghprb-plugin aborts the previous
>>>>>>>>>>>    `beam_PreCommit_PythonLint_Commit` and adds to the queue the new 
>>>>>>>>>>> one with
>>>>>>>>>>>    updated sha1.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> This option seems to significantly improve the experience with
>>>>>>>>>>> build triggering and we are planning to enable it shortly.
>>>>>>>>>>>
>>>>>>>>>>> However, putting a phrase “Run PythonLint PreCommit” in the
>>>>>>>>>>> comment triggers new `beam_PreCommit_PythonLint_Phrase` build,
>>>>>>>>>>> but does not touch already queued or running
>>>>>>>>>>> `beam_PreCommit_PythonLint_Commit` builds, that are technically 
>>>>>>>>>>> speaking,
>>>>>>>>>>> different jobs.
>>>>>>>>>>>
>>>>>>>>>>> For testing purposes I made a single job which was a “_Commit”
>>>>>>>>>>> job with added “Trigger phrase” and it works well (commit builds 
>>>>>>>>>>> cancelled
>>>>>>>>>>> after putting phrase comment in PR)
>>>>>>>>>>>
>>>>>>>>>>> Hence my question: do we need separate “_Phrase” and “_Commit”
>>>>>>>>>>> jobs?
>>>>>>>>>>>
>>>>>>>>>>> BR
>>>>>>>>>>> Tobiasz
>>>>>>>>>>>
>>>>>>>>>>
>>>>>
>>>>> --
>>>>>
>>>>> Tobiasz Kędzierski
>>>>> Polidea <https://www.polidea.com/> | Junior Software Engineer
>>>>>
>>>>> E: tobiasz.kedzier...@polidea.com
>>>>> [image: Polidea] <https://www.polidea.com/>
>>>>>
>>>>> Check out our projects! <https://www.polidea.com/our-work>
>>>>> [image: Github] <https://github.com/Polidea> [image: Facebook]
>>>>> <https://www.facebook.com/Polidea.Software> [image: Twitter]
>>>>> <https://twitter.com/polidea> [image: Linkedin]
>>>>> <https://www.linkedin.com/company/polidea> [image: Instagram]
>>>>> <https://instagram.com/polidea> [image: Behance]
>>>>> <https://www.behance.net/polidea> [image: dribbble]
>>>>> <https://dribbble.com/polideadesign>
>>>>>
>>>>
>>>
>>> --
>>>
>>> Tobiasz Kędzierski
>>> Polidea <https://www.polidea.com/> | Junior Software Engineer
>>>
>>> E: tobiasz.kedzier...@polidea.com
>>> [image: Polidea] <https://www.polidea.com/>
>>>
>>> Check out our projects! <https://www.polidea.com/our-work>
>>> [image: Github] <https://github.com/Polidea> [image: Facebook]
>>> <https://www.facebook.com/Polidea.Software> [image: Twitter]
>>> <https://twitter.com/polidea> [image: Linkedin]
>>> <https://www.linkedin.com/company/polidea> [image: Instagram]
>>> <https://instagram.com/polidea> [image: Behance]
>>> <https://www.behance.net/polidea> [image: dribbble]
>>> <https://dribbble.com/polideadesign>
>>>
>>

Reply via email to