Bug 188533

Summary: [ews-build] Allow * as platform for builders and workers
Product: WebKit Reporter: Aakash Jain <aakash_jain>
Component: Tools / TestsAssignee: Aakash Jain <aakash_jain>
Status: RESOLVED FIXED    
Severity: Normal CC: aakash_jain, ap, commit-queue, ews-watchlist, lforschler, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Proposed patch
none
Archive of layout-test-results from ews206 for win-future none

Description Aakash Jain 2018-08-13 14:43:21 PDT
When a worker (e.g.: webkit-misc) or builder (e.g.: Bindings-tests) do not need a very specific platform, we use * as the platform. However, loadConfig has a check to ensure that the platform matches for worker and platform. This prevents bot with * as platform to connect to multiple queues, or a builder with * as platform to connect to a worker with a specific platform.

We should allow the case when either worker or builder has * as platform, but the other has a specific platform. This would also help in testing (by allowing one bot to be used for testing multiple queues).
Comment 1 Aakash Jain 2018-08-13 14:44:34 PDT
Created attachment 347042 [details]
Proposed patch
Comment 2 Lucas Forschler 2018-08-14 09:22:14 PDT
Comment on attachment 347042 [details]
Proposed patch

View in context: https://bugs.webkit.org/attachment.cgi?id=347042&action=review

> Tools/BuildSlaveSupport/ews-build/loadConfig.py:162
> +            if worker['platform'] != builder['platform'] and worker['platform'] != '*' and builder['platform'] != '*':

I'm not sure what our supported configurations might be, so my initial thought is to break this logic...

Is it possible we would have a configuration where either worker['platform'] was * OR builder['platform'] = * but not both?
In that case, would we prefer to do something like
and (worker['platform'] != '*' or builder['platform'] != '*')
Comment 3 EWS Watchlist 2018-08-16 13:11:51 PDT Comment hidden (obsolete)
Comment 4 EWS Watchlist 2018-08-16 13:12:02 PDT Comment hidden (obsolete)
Comment 5 Aakash Jain 2019-02-05 15:04:50 PST
> > Tools/BuildSlaveSupport/ews-build/loadConfig.py:162
> > +            if worker['platform'] != builder['platform'] and worker['platform'] != '*' and builder['platform'] != '*':
> 
> I'm not sure what our supported configurations might be, so my initial thought is to break this logic...
> 
> Is it possible we would have a configuration where either worker['platform'] was * OR builder['platform'] = * but not both?

Yes, Recently I have been using such a configuration on https://ews-build.webkit-uat.org, especially because I have limited bots for testing and I want a bot to process builds from multiple queues (both mac and ios). In this case worker['platform'] is * since worker can connect to multiple queues. builder['platform'] remains ios/mac accordingly. e.g.: https://bugs.webkit.org/show_bug.cgi?id=194304


> In that case, would we prefer to do something like
> and (worker['platform'] != '*' or builder['platform'] != '*')
This 'if' is to detect an error case, so it should be 'and' of all three conditions. The one in the patch has been working fine in my testing for a while.
Comment 6 WebKit Commit Bot 2019-02-05 15:43:21 PST
Comment on attachment 347042 [details]
Proposed patch

Clearing flags on attachment: 347042

Committed r240999: <https://trac.webkit.org/changeset/240999>
Comment 7 WebKit Commit Bot 2019-02-05 15:43:22 PST
All reviewed patches have been landed.  Closing bug.
Comment 8 Radar WebKit Bug Importer 2019-02-05 15:44:33 PST
<rdar://problem/47834681>