Thank you, Lari and Nicolò!
Best,
tison.

Nicolò Boschi <boschi1...@gmail.com> 于2022年9月9日周五 02:41写道:

> Dear community,
>
> The plan has been executed.
> The summary of our actions is:
> 1. We cancelled all pending jobs (queue and in-progress)
> 2. We removed the required checks to be able to merge improvements on the
> CI workflow
> 3. We merged a couple of improvements:
>    1. workarounded the possible bug triggered by jobs retries. Now
> broker flaky tests are in a dedicated workflow
>    2. moved known flaky tests to the flaky suite
>    3. optimized the runner consumption for docs-only and cpp-only pulls
> 4. We reactivated the required checks.
>
>
> Now it's possible to come back to normal life.
> 1. You must rebase your branch to the latest master (there's a button for
> you in the UI) or eventually you can close/reopen the pull to trigger the
> checks
> 2. You can merge a pull request if you want
> 3. You will find a new job in the Checks section called "Pulsar CI / Pulsar
> CI checks completed" that indicates the Pulsar CI successfully passed
>
> There's a slight chance that the CI will be stuck again in the next few
> days but we will take it monitored.
>
> Thanks Lari for the nice work!
>
> Regards,
> Nicolò Boschi
>
>
> Il giorno gio 8 set 2022 alle ore 10:55 Lari Hotari <lhot...@apache.org>
> ha
> scritto:
>
> > Thank you Nicolo.
> > There's lazy consensus, let's go forward with the action plan.
> >
> > -Lari
> >
> > On 2022/09/08 08:16:05 Nicolò Boschi wrote:
> > > This is the pull for step 2.
> https://github.com/apache/pulsar/pull/17539
> > >
> > > This is the script I'm going to use to cancel pending workflows.
> > >
> >
> https://github.com/nicoloboschi/pulsar-validation-tool/blob/master/pulsar-scripts/pulsar-gha/cancel-workflows.js
> > >
> > > I'm going to run the script in minutes.
> > >
> > > I advertised on Slack about what is happening:
> > >
> >
> https://apache-pulsar.slack.com/archives/C5ZSVEN4E/p1662624668695339?thread_ts=1662463042.016709&cid=C5ZSVEN4E
> > >
> > > >we’re going to execute the plan described in the ML. So any queued
> > actions
> > > will be cancelled. In order to validate your pull it is suggested to
> run
> > > the actions in your own Pulsar fork. Please don’t re-run failed jobs or
> > > push any other commits to avoid triggering new actions
> > >
> > >
> > > Nicolò Boschi
> > >
> > >
> > > Il giorno gio 8 set 2022 alle ore 09:42 Nicolò Boschi <
> > boschi1...@gmail.com>
> > > ha scritto:
> > >
> > > > Thanks Lari for the detailed explanation. This is kind of an
> emergency
> > > > situation and I believe your plan is the way to go now.
> > > >
> > > > I already prepared a pull for moving the flaky suite out of the
> Pulsar
> > CI
> > > > workflow: https://github.com/nicoloboschi/pulsar/pull/8
> > > > I can take care of the execution of the plan.
> > > >
> > > > > 1. Cancel all existing builds in_progress or queued
> > > >
> > > > I have a script locally that uses GHA to check and cancel the pending
> > > > runs. We can extend it to all the queued builds (will share it soon).
> > > >
> > > > > 2. Edit .asf.yaml and drop the "required checks" requirement for
> > merging
> > > > PRs.
> > > > > 3. Wait for build to run for .asf.yaml change, merge it
> > > >
> > > > After the pull is out, we'll need to cancel all other workflows that
> > > > contributors may inadvertently have triggered.
> > > >
> > > > > 4. Disable all workflows
> > > > > 5. Process specific PRs manually to improve the situation.
> > > > >    - Make GHA workflow improvements such as
> > > > https://github.com/apache/pulsar/pull/17491 and
> > > > https://github.com/apache/pulsar/pull/17490
> > > > >    - Quarantine all very flaky tests so that everyone doesn't waste
> > time
> > > > with those. It should be possible to merge a PR even when a
> quarantined
> > > > test fails.
> > > >
> > > > in this step we will merge this
> > > > https://github.com/nicoloboschi/pulsar/pull/8
> > > >
> > > > I want to add to the list this improvement to reduce runners usage in
> > case
> > > > of doc or cpp changes.
> > > > https://github.com/nicoloboschi/pulsar/pull/7
> > > >
> > > >
> > > > > 6. Rebase PRs (or close and re-open) that would be processed next
> so
> > > > that changes are picked up
> > > >
> > > > It's better to leave this task to the author of the pull in order to
> > not
> > > > create too much load at the same time
> > > >
> > > > > 7. Enable workflows
> > > > > 8. Start processing PRs with checks to see if things are handled
> in a
> > > > better way.
> > > > > 9. When things are stable, enable required checks again in
> > .asf.yaml, in
> > > > the meantime be careful about merging PRs
> > > > > 10. Fix quarantined flaky tests
> > > >
> > > >
> > > > Nicolò Boschi
> > > >
> > > >
> > > > Il giorno gio 8 set 2022 alle ore 09:27 Lari Hotari <
> > lhot...@apache.org>
> > > > ha scritto:
> > > >
> > > >> If my assumption of the GitHub usage metrics bug in the GitHub
> Actions
> > > >> build job queue fairness algorithm is correct, what would help is
> > running
> > > >> the flaky unit test group outside of Pulsar CI workflow. In that
> > case, the
> > > >> impact of the usage metrics would be limited.
> > > >>
> > > >> The example of
> > > >> https://github.com/apache/pulsar/actions/runs/3003787409/usage
> shows
> > > >> this flaw as explained in the previous email. The total reported
> > execution
> > > >> time in that report is 1d 1h 40m 21s of usage and the actual usage
> is
> > about
> > > >> 1/3 of this.
> > > >>
> > > >> When we move the most commonly failing job out of Pulsar CI
> workflow,
> > the
> > > >> impact of the possible usage metrics bug would be much less. I hope
> > GitHub
> > > >> support responds to my issue and queries about this bug. It might
> > take up
> > > >> to 7 days to get a reply and for technical questions more time. In
> the
> > > >> meantime we need a solution for getting over this CI slowness issue.
> > > >>
> > > >> -Lari
> > > >>
> > > >>
> > > >>
> > > >> On 2022/09/08 06:34:42 Lari Hotari wrote:
> > > >> > My current assumption of the CI slowness problem is that the usage
> > > >> metrics for Apache Pulsar builds on GitHub side is done incorrectly
> > and
> > > >> that is resulting in apache/pulsar builds getting throttled. This
> > > >> assumption might be wrong, but it's the best guess at the moment.
> > > >> >
> > > >> > The facts that support this assumption is that when re-running
> > failed
> > > >> jobs in a workflow, the execution times for previously successful
> > jobs get
> > > >> counted as if they have all run:
> > > >> > Here's an example:
> > > >> https://github.com/apache/pulsar/actions/runs/3003787409/usage
> > > >> > The reported total usage is about 3x than the actual usage.
> > > >> >
> > > >> > The assumption that I have is that the "fairness algorithm" that
> > GitHub
> > > >> uses to provide all Apache projects about the same amount of GitHub
> > Actions
> > > >> resources would take this flawed usage as the basis of it's
> decisions
> > and
> > > >> it decides to throttle apache/pulsar builds.
> > > >> >
> > > >> > The reason why we are getting hit by this now is that there is a
> > high
> > > >> number of flaky test failures that cause almost every build to fail
> > and we
> > > >> have been re-running a lot of builds.
> > > >> >
> > > >> > The other fact to support the theory of flawed usage metrics used
> in
> > > >> the fairness algorithm is that other Apache projects aren't
> reporting
> > > >> issues about GitHub Actions slowness. This is mentioned in Jarek
> > Potiuk's
> > > >> comments on INFRA-23633 [1]:
> > > >> > > Unlike the case 2 years ago, the problem is not affecting all
> > > >> projects. In Apache Airflow we do > not see any particular slow-down
> > with
> > > >> Public Runners at this moment (just checked - >
> > > >> > > everything is "as usual").. So I'd say it is something specific
> to
> > > >> Pulsar not to "ASF" as a whole.
> > > >> >
> > > >> > There are also other comments from Jarek about the GitHub
> "fairness
> > > >> algorithm" (comment [2], other comment [3])
> > > >> > > But I believe the current problem is different - it might be
> > (looking
> > > >> at your jobs) simply a bug
> > > >> > > in GA that you hit or indeed your demands are simply too high.
> > > >> >
> > > >> > I have opened tickets (2 tickets: 2 days ago and yesterday) to
> > > >> support.github.com and there hasn't been any response to the
> ticket.
> > It
> > > >> might take up to 7 days to get a response. We cannot rely on GitHub
> > Support
> > > >> resolving this issue.
> > > >> >
> > > >> > I propose that we go ahead with the previously suggested action
> plan
> > > >> > > One possible way forward:
> > > >> > > 1. Cancel all existing builds in_progress or queued
> > > >> > > 2. Edit .asf.yaml and drop the "required checks" requirement for
> > > >> merging PRs.
> > > >> > > 3. Wait for build to run for .asf.yaml change, merge it
> > > >> > > 4. Disable all workflows
> > > >> > > 5. Process specific PRs manually to improve the situation.
> > > >> > >    - Make GHA workflow improvements such as
> > > >> https://github.com/apache/pulsar/pull/17491 and
> > > >> https://github.com/apache/pulsar/pull/17490
> > > >> > >    - Quarantine all very flaky tests so that everyone doesn't
> > waste
> > > >> time with those. It should be possible to merge a PR even when a
> > > >> quarantined test fails.
> > > >> > > 6. Rebase PRs (or close and re-open) that would be processed
> next
> > so
> > > >> that changes are picked up
> > > >> > > 7. Enable workflows
> > > >> > > 8. Start processing PRs with checks to see if things are handled
> > in a
> > > >> better way.
> > > >> > > 9. When things are stable, enable required checks again in
> > .asf.yaml,
> > > >> in the meantime be careful about merging PRs
> > > >> > > 10. Fix quarantined flaky tests
> > > >> >
> > > >> > To clarify, steps 1-6 would be done optimally in 1 day and we
> would
> > > >> stop processing ordinary PRs during this time. We would only handle
> > PRs
> > > >> that fix the CI situation during this exceptional period.
> > > >> >
> > > >> > -Lari
> > > >> >
> > > >> > Links to Jarek's comments:
> > > >> > [1]
> > > >>
> >
> https://issues.apache.org/jira/browse/INFRA-23633?focusedCommentId=17600749&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17600749
> > > >> > [2]
> > > >>
> >
> https://issues.apache.org/jira/browse/INFRA-23633?focusedCommentId=17600893&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17600893
> > > >> > [3]
> > > >>
> >
> https://issues.apache.org/jira/browse/INFRA-23633?focusedCommentId=17600893&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17600893
> > > >> >
> > > >> > On 2022/09/07 17:01:43 Lari Hotari wrote:
> > > >> > > One possible way forward:
> > > >> > > 1. Cancel all existing builds in_progress or queued
> > > >> > > 2. Edit .asf.yaml and drop the "required checks" requirement for
> > > >> merging PRs.
> > > >> > > 3. Wait for build to run for .asf.yaml change, merge it
> > > >> > > 4. Disable all workflows
> > > >> > > 5. Process specific PRs manually to improve the situation.
> > > >> > >    - Make GHA workflow improvements such as
> > > >> https://github.com/apache/pulsar/pull/17491 and
> > > >> https://github.com/apache/pulsar/pull/17490
> > > >> > >    - Quarantine all very flaky tests so that everyone doesn't
> > waste
> > > >> time with those. It should be possible to merge a PR even when a
> > > >> quarantined test fails.
> > > >> > > 6. Rebase PRs (or close and re-open) that would be processed
> next
> > so
> > > >> that changes are picked up
> > > >> > > 7. Enable workflows
> > > >> > > 8. Start processing PRs with checks to see if things are handled
> > in a
> > > >> better way.
> > > >> > > 9. When things are stable, enable required checks again in
> > .asf.yaml,
> > > >> in the meantime be careful about merging PRs
> > > >> > > 10. Fix quarantined flaky tests
> > > >> > >
> > > >> > > -Lari
> > > >> > >
> > > >> > > On 2022/09/07 16:47:09 Lari Hotari wrote:
> > > >> > > > The problem with CI is becoming worse. The build queue is 235
> > jobs
> > > >> now and the queue time is over 7 hours.
> > > >> > > >
> > > >> > > > We will need to start shedding load in the build queue and get
> > some
> > > >> fixes in.
> > > >> > > > https://issues.apache.org/jira/browse/INFRA-23633 continues
> to
> > > >> contain details about some activities. I have created 2 GitHub
> Support
> > > >> tickets, but usually it takes up to a week to get a response.
> > > >> > > >
> > > >> > > > I have some assumptions about the issue, but they are just
> > > >> assumptions.
> > > >> > > > One oddity is that when re-running failed jobs is used in a
> > large
> > > >> workflow, the execution times for previously successful jobs get
> > counted as
> > > >> if they have run.
> > > >> > > > Here's an example:
> > > >> https://github.com/apache/pulsar/actions/runs/3003787409/usage
> > > >> > > > The reported usage is about 3x than the actual usage.
> > > >> > > > The assumption that I have is that the "fairness algorithm"
> that
> > > >> GitHub uses to provide all Apache projects about the same amount of
> > GitHub
> > > >> Actions resources would take this flawed usage as the basis of it's
> > > >> decisions.
> > > >> > > > The reason why we are getting hit by this now is that there
> is a
> > > >> high number of flaky test failures that cause almost every build to
> > fail
> > > >> and we are re-running a lot of builds.
> > > >> > > >
> > > >> > > > Another problem there is that the GitHub Actions search
> doesn't
> > > >> always show all workflow runs that are running. This has happened
> > before
> > > >> when the GitHub Actions workflow search index was corrupted. GitHub
> > Support
> > > >> resolved that by rebuilding the search index with some manual admin
> > > >> operation behind the scenes.
> > > >> > > >
> > > >> > > > I'm proposing that we start shedding load from CI by
> cancelling
> > > >> build jobs and selecting which jobs to process so that we get the CI
> > issue
> > > >> resolved. We might also have to disable required checks so that we
> > have
> > > >> some way to get changes merged while CI doesn't work properly.
> > > >> > > >
> > > >> > > > I'm expecting lazy consensus on fixing CI unless someone
> > proposes a
> > > >> better plan. Let's keep everyone informed in this mailing list
> thread.
> > > >> > > >
> > > >> > > > -Lari
> > > >> > > >
> > > >> > > >
> > > >> > > > On 2022/09/06 14:41:07 Dave Fisher wrote:
> > > >> > > > > We are going to need to take actions to fix our problems.
> See
> > > >>
> >
> https://issues.apache.org/jira/browse/INFRA-23633?focusedCommentId=17600749&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17600749
> > > >> > > > >
> > > >> > > > > Jarek has done a large amount of GitHub Action work with
> > Apache
> > > >> Airflow and his suggestions might be helpful. One of his suggestions
> > was
> > > >> Apache Yetus. I think he means using the Maven plugins -
> > > >> https://yetus.apache.org/documentation/0.14.0/yetus-maven-plugin/
> > > >> > > > >
> > > >> > > > >
> > > >> > > > > > On Sep 6, 2022, at 4:48 AM, Lari Hotari <
> lhot...@apache.org
> > >
> > > >> wrote:
> > > >> > > > > >
> > > >> > > > > > The Apache Infra ticket is
> > > >> https://issues.apache.org/jira/browse/INFRA-23633 .
> > > >> > > > > >
> > > >> > > > > > -Lari
> > > >> > > > > >
> > > >> > > > > > On 2022/09/06 11:36:46 Lari Hotari wrote:
> > > >> > > > > >> I asked for an update on the Apache org GitHub Actions
> > usage
> > > >> stats from Gavin McDonald on the-asf slack in this thread:
> > > >>
> >
> https://the-asf.slack.com/archives/CBX4TSBQ8/p1662464113873539?thread_ts=1661512133.913279&cid=CBX4TSBQ8
> > > >> .
> > > >> > > > > >>
> > > >> > > > > >> I hope we get this issue resolved since it delays PR
> > > >> processing a lot.
> > > >> > > > > >>
> > > >> > > > > >> -Lari
> > > >> > > > > >>
> > > >> > > > > >> On 2022/09/06 11:16:07 Lari Hotari wrote:
> > > >> > > > > >>> Pulsar CI continues to be congested, and the build queue
> > [1]
> > > >> is very long at the moment. There are 147 build jobs in the queue
> and
> > 16
> > > >> jobs in progress at the moment.
> > > >> > > > > >>>
> > > >> > > > > >>> I would strongly advice everyone to use "personal CI" to
> > > >> mitigate the issue of the long delay of CI feedback. You can simply
> > open a
> > > >> PR to your own personal fork of apache/pulsar to run the builds in
> > your
> > > >> "personal CI". There's more details in the previous emails in this
> > thread.
> > > >> > > > > >>>
> > > >> > > > > >>> -Lari
> > > >> > > > > >>>
> > > >> > > > > >>> [1] - build queue:
> > > >> https://github.com/apache/pulsar/actions?query=is%3Aqueued
> > > >> > > > > >>>
> > > >> > > > > >>> On 2022/08/30 12:39:19 Lari Hotari wrote:
> > > >> > > > > >>>> Pulsar CI continues to be congested, and the build
> queue
> > is
> > > >> long.
> > > >> > > > > >>>>
> > > >> > > > > >>>> I would strongly advice everyone to use "personal CI"
> to
> > > >> mitigate the issue of the long delay of CI feedback. You can simply
> > open a
> > > >> PR to your own personal fork of apache/pulsar to run the builds in
> > your
> > > >> "personal CI". There's more details in the previous email in this
> > thread.
> > > >> > > > > >>>>
> > > >> > > > > >>>> Some updates:
> > > >> > > > > >>>>
> > > >> > > > > >>>> There has been a discussion with Gavin McDonald from
> ASF
> > > >> infra on the-asf slack about getting usage reports from GitHub to
> > support
> > > >> the investigation. Slack thread is the same one mentioned in the
> > previous
> > > >> email,
> https://the-asf.slack.com/archives/CBX4TSBQ8/p1661512133913279
> > .
> > > >> Gavin already requested the usage report in GitHub UI, but it
> produced
> > > >> invalid results.
> > > >> > > > > >>>>
> > > >> > > > > >>>> I made a change to mitigate a source of additional
> GitHub
> > > >> Actions overhead.
> > > >> > > > > >>>> In the past, each cherry-picked commit to a maintenance
> > > >> branch of Pulsar has triggered a lot of workflow runs.
> > > >> > > > > >>>>
> > > >> > > > > >>>> The solution for cancelling duplicate builds
> > automatically
> > > >> is to add this definition to the workflow definition:
> > > >> > > > > >>>> concurrency:
> > > >> > > > > >>>>  group: ${{ github.workflow }}-${{ github.ref }}
> > > >> > > > > >>>>  cancel-in-progress: true
> > > >> > > > > >>>>
> > > >> > > > > >>>> I added this to all maintenance branch GitHub Actions
> > > >> workflows:
> > > >> > > > > >>>>
> > > >> > > > > >>>> branch-2.10 change:
> > > >> > > > > >>>>
> > > >>
> >
> https://github.com/apache/pulsar/commit/5d2c9851f4f4d70bfe74b1e683a41c5a040a6ca7
> > > >> > > > > >>>> branch-2.9 change:
> > > >> > > > > >>>>
> > > >>
> >
> https://github.com/apache/pulsar/commit/3ea124924fecf636cc105de75c62b3a99050847b
> > > >> > > > > >>>> branch-2.8 change:
> > > >> > > > > >>>>
> > > >>
> >
> https://github.com/apache/pulsar/commit/48187bb5d95e581f8322a019b61d986e18a31e54
> > > >> > > > > >>>> branch-2.7:
> > > >> > > > > >>>>
> > > >>
> >
> https://github.com/apache/pulsar/commit/744b62c99344724eacdbe97c881311869d67f630
> > > >> > > > > >>>>
> > > >> > > > > >>>> branch-2.11 already contains the necessary config for
> > > >> cancelling duplicate builds.
> > > >> > > > > >>>>
> > > >> > > > > >>>> The benefit of the above change is that when multiple
> > > >> commits are cherry-picked to a branch at once, only the build of the
> > last
> > > >> commit will get run eventually. The builds for the intermediate
> > commits
> > > >> will get cancelled. Obviously there's a tradeoff here that we don't
> > get the
> > > >> information if one of the earlier commits breaks the build. It's the
> > cost
> > > >> that we need to pay. Nevertheless our build is so flaky that it's
> > hard to
> > > >> determine whether a failed build result is only caused by bad flaky
> > test or
> > > >> whether it's an actual failure. Because of this we don't lose
> > anything by
> > > >> cancelling builds. It's more important to save build resources. In
> the
> > > >> maintenance branches for 2.10 and older, the average total build
> time
> > > >> consumed is around 20 hours which is a lot.
> > > >> > > > > >>>>
> > > >> > > > > >>>> At this time, the overhead of maintenance branch builds
> > > >> doesn't seem to be the source of the problems. There must be some
> > other
> > > >> issue which is possibly related to exceeding a usage quota.
> Hopefully
> > we
> > > >> get the CI slowness issue solved asap.
> > > >> > > > > >>>>
> > > >> > > > > >>>> BR,
> > > >> > > > > >>>>
> > > >> > > > > >>>> Lari
> > > >> > > > > >>>>
> > > >> > > > > >>>>
> > > >> > > > > >>>> On 2022/08/26 12:00:20 Lari Hotari wrote:
> > > >> > > > > >>>>> Hi,
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> GitHub Actions builds have been piling up in the build
> > > >> queue in the last few days.
> > > >> > > > > >>>>> I posted on bui...@apache.org
> > > >> https://lists.apache.org/thread/6lbqr0f6mqt9s8ggollp5kj2nv7rlo9s
> and
> > > >> created INFRA ticket
> > https://issues.apache.org/jira/browse/INFRA-23633
> > > >> about this issue.
> > > >> > > > > >>>>> There's also a thread on the-asf slack,
> > > >> https://the-asf.slack.com/archives/CBX4TSBQ8/p1661512133913279 .
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> It seems that our build queue is finally getting
> picked
> > up,
> > > >> but it would be great to see if we hit quota and whether that is the
> > cause
> > > >> of pauses.
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> Another issue is that the master branch broke after
> > merging
> > > >> 2 conflicting PRs.
> > > >> > > > > >>>>> The fix is in
> > https://github.com/apache/pulsar/pull/17300
> > > >> .
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> Merging PRs will be slow until we have these 2
> problems
> > > >> solved and existing PRs rebased over the changes. Let's prioritize
> > merging
> > > >> #17300 before pushing more changes.
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> I'd like to point out that a good way to get build
> > feedback
> > > >> before sending a PR, is to run builds on your personal GitHub
> Actions
> > CI.
> > > >> The benefit of this is that it doesn't consume the shared quota and
> > builds
> > > >> usually start instantly.
> > > >> > > > > >>>>> There are instructions in the contributors guide about
> > > >> this.
> > > >> > > > > >>>>>
> > > >> https://pulsar.apache.org/contributing/#ci-testing-in-your-fork
> > > >> > > > > >>>>> You simply open PRs to your own fork of apache/pulsar
> to
> > > >> run builds on your personal GitHub Actions CI.
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> BR,
> > > >> > > > > >>>>>
> > > >> > > > > >>>>> Lari
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>>
> > > >> > > > > >>>>
> > > >> > > > > >>>
> > > >> > > > > >>
> > > >> > > > >
> > > >> > > > >
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > > >
> > >
> >
>

Reply via email to