Commit graph

20 commits

Author SHA1 Message Date
Armen Zambrano Gasparnian
ff5e584d9d Bug 1279676 - Support --rebuild try flag to schedule tests N times. r=dustin
MozReview-Commit-ID: Lrxi8t53nwy

If a developer adds '--rebuild N' to their try syntax they will get test jobs scheduled N times.
This is useful to determine intermittency rate.

This fixes a regression due to the recent refactoring on how we schedule tasks.

--HG--
extra : rebase_source : 355ca631353015bf63461c194168d753efd6958e
2016-07-28 13:20:44 -04:00
Gregory Szorc
f434988215 Bug 1291035 - Increase HTTP connection pool capacity; r=dustin
I was looking at some decision task logs and noticed lines like:

  Connection pool is full, discarding connection: taskcluster

I also noticed lines like:

  Starting new HTTP connection (153): taskcluster

In this case, we had established 153 TCP connections to a server.

Looking at the requests source code, a requests.session by default
creates a connection pool with capacity of 10. There are actually 2
components to the capacity: idle connections and active connections.
What appeared to be happening was we could obtain an idle connection,
use it, and then it would be discarded when put back in the idle
pool because the idle pool was at capacity. Furthermore, it also
appears that connections were sitting around waiting for a TCP
connection.

This commit uses a custom "adapter" with an increased pool size that
matches the concurrency level of the code issuing the HTTP requests.
This should increase the number of concurrent TCP connections / requests,
decreease the number of TCP connections being used overall, and make
decision tasks complete faster.

MozReview-Commit-ID: 6NDbz78TM2y

--HG--
extra : rebase_source : a48e1dae31a5e2af2bc554b544a9019d50dc784f
2016-08-01 14:49:55 -07:00
Dustin J. Mitchell
fd3cfffba7 Bug 1289225: increase createTask concurrency; r=gps,jonasfj
MozReview-Commit-ID: DuIzZUbTsaY

--HG--
extra : rebase_source : a96e52f32edd6cda86db9e0d967820235f3aa7d3
2016-07-25 20:52:43 +00:00
Dustin J. Mitchell
ffca84ff7d Bug 1281004: Specify test tasks more flexibly; r=gps; r=gbrown
This introduces a completely new way of specifying test task in-tree,
completely replacing the old spider-web of YAML files.

The high-level view is this:

 - some configuration files are used to determine which test suites to run
   for each test platform, and against which build platforms

 - each test suite is then represented by a dictionary, and modified by a
   sequence of transforms, duplicating as necessary (e.g., chunks), until
   it becomes a task definition

The transforms allow sufficient generality to support just about any desired
configuration, with the advantage that common configurations are "easy" while
unusual configurations are supported but notable for their oddness (they
require a custom transform).

As of this commit, this system produces the same set of test graphs as the
existing YAML, modulo:

  - extra.treeherder.groupName -- this was not consistent in the YAML
  - extra.treeherder.build -- this is ignored by taskcluster-treeherder anyway
  - mozharness command argument order
  - boolean True values for environment variables are now the string "true"
  - metadata -- this is now much more consistent, with task name being the label

Testing of this commit demonstrates that it produces the same set of test tasks for
the following projects (those which had special cases defined in the YAML):

  - autoland
  - ash (*)
  - willow
  - mozilla-inbound
  - mozilla-central
  - try:
    -b do -p all -t all -u all
    -b d -p linux64,linux64-asan -u reftest -t none
    -b d -p linux64,linux64-asan -u reftest[x64] -t none[x64]

(*) this patch omits the linux64/debug tc-M-e10s(dt) test, which is enabled on
ash; ash will require a small changeset to re-enable this test.

IGNORE BAD COMMIT MESSAGES (because the hook flags try syntax!)

MozReview-Commit-ID: G34dg9f17Hq

--HG--
rename : taskcluster/taskgraph/kind/base.py => taskcluster/taskgraph/task/base.py
rename : taskcluster/taskgraph/kind/docker_image.py => taskcluster/taskgraph/task/docker_image.py
rename : taskcluster/taskgraph/kind/legacy.py => taskcluster/taskgraph/task/legacy.py
extra : rebase_source : 03e70902c2d3a297eb9e3ce852f8737c2550d5a6
extra : histedit_source : d4d9f4b192605af21f41d83495fc3c923759c3cb
2016-07-11 23:27:14 +00:00
Kalpesh Krishna
3112858067 Bug 1284005 - Replacing timestamps with relative timestamps. r=dustin 2016-07-06 03:03:00 +02:00
Ryan VanderMeulen
93a1a23b6b Backed out changeset 320ee1117179 (bug 1284005) for gecko-decision task failures. 2016-07-07 00:16:45 -04:00
Kalpesh Krishna
110a36bb4b Bug 1284005 - Replace timestamps with relative timestamps. r=dustin
--HG--
extra : rebase_source : 0628ff7f93cab9e690fd9d7015783cbc6048d058
2016-07-06 03:03:00 -04:00
Carsten "Tomcat" Book
1add070144 Backed out changeset 8c9ee38712de (bug 1284005) for gecko-decision task failures 2016-07-07 05:56:00 +02:00
Kalpesh Krishna
84704cb30e Bug 1284005 - Replacing timestamps with relative timestamps.
--HG--
extra : rebase_source : 4b7e931d33208e987932d41761725e2769de42a8
2016-07-06 03:03:00 +02:00
Carsten "Tomcat" Book
fb7e5c4f86 Backed out changeset cc4009e9cecc (bug 1284005) for causing merge conflicts when merging to m-c
--HG--
extra : rebase_source : 1076f58b4aa748ddc35920d1591bb99b8c1a7358
2016-07-06 11:49:59 +02:00
Kalpesh Krishna
2445bb037a Bug 1284005 - Replacing timestamps with relative timestamps. r=dustin 2016-07-05 11:50:50 -07:00
Dustin J. Mitchell
49f6131a63 Bug 1280231: refactor task kinds to task classes; r=jonasfj
MozReview-Commit-ID: 1cNukxBgfey

--HG--
extra : rebase_source : 4f0fcce2bcea0fb78ba70e7c052638ca2c5b8a3d
extra : intermediate-source : ba5cbf4e06a550993e5216f816dcf0ccd3938b2e
extra : source : f744bd2fbcd3ae9b90851dcd12307c15d04f8bea
2016-06-27 22:57:44 +00:00
Wes Kocher
c9059e6a53 Backed out 3 changesets (bug 1280231) for decision task failures CLOSED TREE
Backed out changeset 4b1d94901b4d (bug 1280231)
Backed out changeset 7898d1ab1afc (bug 1280231)
Backed out changeset ba5cbf4e06a5 (bug 1280231)

--HG--
rename : taskcluster/taskgraph/taskgraph.py => taskcluster/taskgraph/types.py
2016-06-27 15:45:44 -07:00
Dustin J. Mitchell
4cfe2b182c Bug 1280231: refactor task kinds to task classes; r=jonasfj
MozReview-Commit-ID: 1cNukxBgfey

--HG--
extra : source : f744bd2fbcd3ae9b90851dcd12307c15d04f8bea
2016-06-20 20:45:15 +00:00
Justin Wood
15b23fced1 Bug 1280956 - Use in-tree linter job to flake8 test taskcluster directory. r=dustin
MozReview-Commit-ID: FsWmAnnycZ2

--HG--
extra : rebase_source : 04a32cea2de133cb75472092cffb8a215f7dc603
2016-06-20 21:06:55 -04:00
Gregory Szorc
f1ac718545 Bug 1278406 - Use a thread pool for submitting tasks to queue; r=dustin
Currently, Gecko decision tasks spend ~8 minutes making HTTP requests to the
queue API. Let's throw a thread pool at it so tasks are submitted faster.

This could possibly be faster if there were a single batch submit API in
the queue. However, that isn't implemented for technical reasons described
in the bug.

MozReview-Commit-ID: MeHItEVBbk

--HG--
extra : rebase_source : ebe182c5906df70cd2e4cbd545f7b7b9189882da
2016-06-07 11:06:12 -07:00
Dustin J. Mitchell
69471c3482 Bug 1276216: make any tasks without dependencies depend on the decision task; r=ahal
MozReview-Commit-ID: 5k5jC7CCHNW

--HG--
extra : rebase_source : 0f77e208b1947b2082481b7ceeab57055c13797e
2016-06-06 17:23:03 +00:00
Dustin J. Mitchell
722b95f979 Bug 1274611: Implement task-graph optimization; r=gps
* Implement & document optimization (although legacy kind doesn't do much of it)
 * Introduce `optimize_target_tasks` parameter to control whether tasks in the
   target set can be optimized (no for try, yes for most other branches)
 * Refactor to include resolved taskIds in the optimized task graph
 * Include a `label-to-taskid.json` artifact.
 * Introduce {'task-reference': '... <dependency-name> ...'} for referring to
   parent tasks' taskId.

MozReview-Commit-ID: LWvlWNz49U5

--HG--
extra : rebase_source : 780e0e23d24b268ade33ecdcbccb5081f32aac48
2016-06-05 19:49:41 +00:00
Dustin J. Mitchell
47d764d976 Bug 1273673: log task creation, too; r=gps
MozReview-Commit-ID: K2Pn4WDXsxo

--HG--
extra : rebase_source : 76860de71812c3c0a2725bd2cbe213f71201ab49
2016-05-18 15:58:21 +00:00
Dustin J. Mitchell
cea2249ca3 Bug 1258497: Implement a new taskgraph generation system; r=gps
The `taskgraph` package generates TaskCluster task graphs based on collections
of task "kinds".  Initially, there is only one kind, the "legacy" kind, which
reads the YAML files from `testing/taskcluster/tasks` to generate the task
graph.

Try syntax is implemented by filtering the tasks in the taskgraph after it has
been created, then extending the result to include any prerequisite tasks.

A collection of `mach taskgraph` subcommands are provided for developers to
extend or debug the task-graph generation process.

MozReview-Commit-ID: 1TJCns4XxZ8

--HG--
rename : testing/taskcluster/docs/index.rst => taskcluster/docs/index.rst
extra : rebase_source : 7b9125281d66044db9bd8e4a1fade16136f384b9
extra : histedit_source : 47640d27080acda0279270babbcf33f5badb0d1c
2016-05-16 22:53:22 +00:00