Yes, thanks. Really helpful.

Kenn

On Tue, Jul 14, 2020 at 9:48 AM Ahmet Altay <al...@google.com> wrote:

> 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