[MacPorts] #54648: buildbot schedules builds for subports that have already been built

MacPorts noreply at macports.org
Mon Aug 21 03:53:57 UTC 2017


#54648: buildbot schedules builds for subports that have already been built
-----------------------------+----------------------
  Reporter:  ryandesign      |      Owner:  admin@…
      Type:  defect          |     Status:  new
  Priority:  Normal          |  Milestone:
 Component:  server/hosting  |    Version:
Resolution:                  |   Keywords:  buildbot
      Port:                  |
-----------------------------+----------------------
Changes (by ryandesign):

 * keywords:   => buildbot


Comment:

 I think the problem is arising when I occasionally [ticket:54247 redeliver
 failed GitHub webhooks].

 When we first implemented the new buildbot system using the old Subversion
 server, we had a "problem" that when a revision was committed, the
 buildbot would build the port as it appeared in the HEAD of the
 repository, not as it appeared in that revision. I remember we had a
 discussion about this, and my understanding was that we had concluded that
 although this wasn't what we had originally intended, it worked out better
 that way, because our goal wasn't to build every revision; our goal was to
 build the latest revision. So if two commits came in for the same port
 within a short time, before the buildbot had a chance to start work on the
 first revision, it was fine if it only built the second revision.

 In redelivering the GitHub webhooks, I had assumed that behavior was still
 in place, but it appears not to be. Now, the git clone is rolled forward
 or back to the commit in question before building. And of course the local
 portindex is updated to reflect that state. So if I were to update php70
 to a new version, and then redeliver a webhook from before that php70
 update, uninstall-old-ports.tcl would dutifully uninstall the latest
 php70—and every other port updated since the commit currently being
 built—because the index now contains older versions of ports.

 [https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/35461
 Here's one example] where I committed an update to mongo-tools on July 24,
 the webhook delivery status was recorded as failed (though it probably did
 actually get processed the first time, buildbot just didn't respond
 quickly enough), and I resent the webhook when I noticed that problem on
 July 31. The
 [https://build.macports.org/builders/ports-10.12_x86_64-builder/builds/35461/steps/cleanup/logs/stdio
 cleanup step] shows over 1500 ports—presumably all those that were
 modified between those two dates—getting uninstalled.

 Ideally I would fix the buildbot so that it's not so slow, but there could
 be other reasons why webhook delivery would fail, such as the buildbot
 being down due to software update or power outage, and I would want to
 redeliver those webhooks. And I wonder if the same problem would occur if
 someone used the buildbot "Rebuild" button.

 Was the buildbot behavior deliberately changed, and if so what problem
 were we trying to solve? Could we go back to the previous behavior where
 we always build from the HEAD of the repository?

--
Ticket URL: <https://trac.macports.org/ticket/54648#comment:5>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list