Open Bug 1478364 Opened 6 years ago Updated 2 years ago

Add support for run-task on generic-worker on linux

Categories

(Firefox Build System :: Task Configuration, task)

task

Tracking

(Not tracked)

REOPENED

People

(Reporter: dragrom, Unassigned)

References

Details

      No description provided.
We need to implement run-task for generic-worker. This is the taskcluster-worker implementation:

https://dxr.mozilla.org/mozilla-central/rev/085cdfb90903d4985f0de1dc7786522d9fb45596/taskcluster/taskgraph/transforms/job/run_task.py#110-130

The generic-worker implementation will allow us to use run-task on generic-worker, which will aid the migration of linux talos workers from taskcluster-worker to generic-worker in bug 1474570.
Marking as a duplicate of 1436037 which is for adding run-task support for generic-worker on all platforms. It probably makes sense to add support for all platforms at the same time.
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → DUPLICATE
Summary: Convert taskcluster-worker task definition to generic-worker task definition → Add support for run-task on generic-worker on linux
See Also: → 1436037
See Also: 1436037
Here is a taskcluster-worker linux talos task:

  * https://queue.taskcluster.net/v1/task/ZPTf5gChSae34lqYhDe8LA

The payload section looks like this:

  "payload": {
    "artifacts": [
      {   
        "path": "workspace/build/upload/logs",
        "expires": "2019-07-25T22:45:44.576Z",
        "type": "directory",
        "name": "public/logs"
      },  
      {   
        "path": "artifacts",
        "expires": "2019-07-25T22:45:44.576Z",
        "type": "directory",
        "name": "public/test"
      },  
      {   
        "path": "workspace/build/blobber_upload_dir",
        "expires": "2019-07-25T22:45:44.576Z",
        "type": "directory",
        "name": "public/test_info"
      }   
    ],  
    "maxRunTime": 1200,
    "command": [
      "./test-linux.sh",
      "--installer-url=https://queue.taskcluster.net/v1/task/ARTVphjmRCa1_oINQVVSVQ/artifacts/public/build/target.tar.bz2",
      "--test-packages-url=https://queue.taskcluster.net/v1/task/ARTVphjmRCa1_oINQVVSVQ/artifacts/public/build/target.test_packages.json",
      "--suite=tp6-stylo-threads-e10s",
      "--use-talos-json",
      "--download-symbols=ondemand"
    ],    
    "env": {
      "XPCOM_DEBUG_BREAK": "warn",
      "MOZ_NO_REMOTE": "1",
      "MOZ_HIDE_RESULTS_TABLE": "1",
      "GECKO_HEAD_REV": "7ba07ef0e4532b644b812942aa38af4510dbc74f",
      "MOZHARNESS_SCRIPT": "talos_script.py",
      "NEED_XVFB": "false",
      "MOZHARNESS_URL": "https://queue.taskcluster.net/v1/task/ARTVphjmRCa1_oINQVVSVQ/artifacts/public/build/mozharness.zip",
      "MOZ_NODE_PATH": "/usr/local/bin/node",
      "GECKO_HEAD_REPOSITORY": "https://hg.mozilla.org/mozilla-central",
      "NO_FAIL_ON_TEST_ERRORS": "1",
      "MOZHARNESS_CONFIG": "talos/linux_config.py",
      "NO_EM_RESTART": "1",
      "MOZ_AUTOMATION": "1",
      "MOZILLA_BUILD_URL": "https://queue.taskcluster.net/v1/task/ARTVphjmRCa1_oINQVVSVQ/artifacts/public/build/target.tar.bz2"
    },    
    "context": "https://hg.mozilla.org/mozilla-central/raw-file/7ba07ef0e4532b644b812942aa38af4510dbc74f/taskcluster/scripts/tester/test-linux.sh"  
  },


I converted this to a generic-worker style payload here:

  https://tools.taskcluster.net/groups/QhWPhpPuSPSq5oSrAA1UKw/tasks/QhWPhpPuSPSq5oSrAA1UKw/details

Seems to be running fine so far (although livelog seems not to be working):

  https://papertrailapp.com/systems/t-linux64-ms-240.test.releng.mdc1.mozilla.com/events
(In reply to Pete Moore [:pmoore][:pete] from comment #3)

> Seems to be running fine so far (although livelog seems not to be working):
>  
> https://papertrailapp.com/systems/t-linux64-ms-240.test.releng.mdc1.mozilla.com/events

The task failed, since test-linux.sh assumes that the task directory is also the home directory, e.g. here:

  * https://hg.mozilla.org/mozilla-central/file/7ba07ef0e4532b644b812942aa38af4510dbc74f/taskcluster/scripts/tester/test-linux.sh#l61
  * https://hg.mozilla.org/mozilla-central/file/7ba07ef0e4532b644b812942aa38af4510dbc74f/taskcluster/scripts/tester/test-linux.sh#l68
  * https://hg.mozilla.org/mozilla-central/file/7ba07ef0e4532b644b812942aa38af4510dbc74f/taskcluster/scripts/tester/test-linux.sh#l127


If we fix test-linux.sh to use the allow the current directory to be the task directory, this should be solved. Note, the default WORKSPACE also doesn't work for us:

  * https://hg.mozilla.org/mozilla-central/file/7ba07ef0e4532b644b812942aa38af4510dbc74f/taskcluster/scripts/tester/test-linux.sh#l31
The difference in implementation for run-task between taskcluster-worker and generic-worker on linux should be:

  i) command is an array of array of strings, not an array of strings (one array per command). The first command should make test-linux.sh executable, and the second command should run it. See https://tools.taskcluster.net/groups/QhWPhpPuSPSq5oSrAA1UKw/tasks/QhWPhpPuSPSq5oSrAA1UKw/details
  ii) instead of "context" use the "mounts" feature.

For understanding both of these changes, compare the task payloads:

https://tools.taskcluster.net/groups/dVM5Z-2SSAWePYfZ6eCPSA/tasks/ZPTf5gChSae34lqYhDe8LA/details (taskcluster-worker)
vs
https://tools.taskcluster.net/groups/QhWPhpPuSPSq5oSrAA1UKw/tasks/QhWPhpPuSPSq5oSrAA1UKw/details (generic-worker)
I'm reopening this bug, as implementing these changes is much smaller than doing everything for all three platforms (win/mac/linux) so let's just do linux in this bug, and leave the other one for the remaining two platforms.
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.