RESOLVED FIXED300920
[build.webkit.org] Build requests are not collapsed since the switch to multi-master mode
https://bugs.webkit.org/show_bug.cgi?id=300920
Summary [build.webkit.org] Build requests are not collapsed since the switch to multi...
Carlos Alberto Lopez Perez
Reported 2025-10-16 13:22:16 PDT
At 301496@main I thought that the issue with build requests not being collapsed on build.webkit.org since the migration to 4.3.0 was due to the change of default value for the parameter collapseRequests from 2.10 to 4.3.0, but this was not the case in the end. The problem was not because of the upgrade of version, but because of the multi-master deployment that was done when the version was upgraded. The core issue happens here: https://github.com/buildbot/buildbot/blob/6786251177836ab01b88d029aaa5821016976970/master/buildbot/process/buildrequest.py#L72 @defer.inlineCallbacks def collapse(self): brids_to_collapse = set() for brid in self.brids: # Get the BuildRequest object br = yield self.master.data.get(('buildrequests', brid)) # <- It gets all the info fine from the buildrequest (this is a query to the DB) # Retrieve the buildername builderid = br['builderid'] bldrdict = yield self.master.data.get(('builders', builderid)) # <- It gets all the info fine from the builder (this is a query to the DB) # Get the builder object bldr = self.master.botmaster.builders.get(bldrdict['name']) # <- Returns None, here it is where it fails! if not bldr: continue bldrdict['name'] gets resolved correctly to the name of the builder, but self.master.botmaster.builders is an empty dictionary on the -webserver master That is because this code to collapse the build-requests run on the master -webserver , and there are no builders defined on it, so there are no "builder object" available The data is coherent, the -webserver master is able to access all the builder information from the DB but it fails when tries to retrieve the python object that represent such builder, which obviously can't get that from the DB. So the easy way to fix this without patching buildbot code is that we define the workers and the builders also on the -webserver master, that way it can find the builder object and continue executing the collapse function as expected.
Attachments
Carlos Alberto Lopez Perez
Comment 1 2025-10-16 13:48:00 PDT
EWS
Comment 2 2025-10-16 13:54:32 PDT
Committed 301655@main (c9fec4eec9b7): <https://commits.webkit.org/301655@main> Reviewed commits have been landed. Closing PR #52506 and removing active labels.
Radar WebKit Bug Importer
Comment 3 2025-10-16 13:55:11 PDT
Note You need to log in before you can comment on or make changes to this bug.