Status: SUCCEEDED
Triggered by: -
Duration: 27 minutes
Actions:

Definition (rev cca5e2689dfd70ecc9405e1b7f6d49f169ec490f)

buildbucket: <
  server: "cr-buildbucket.appspot.com"
  bucket: "luci.webrtc.ci"
  builder: "Android32 Builder x86"
>

Incoming triggers

Incoming properties

{
  "branch": "refs/heads/master",
  "repository": "https://webrtc.googlesource.com/src",
  "revision": "02fac7d86e64595d6c35c1460e491d7f04c01864"
}

Incoming tags

  • buildset:commit/git/02fac7d86e64595d6c35c1460e491d7f04c01864
  • buildset:commit/gitiles/webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864
  • gitiles_ref:refs/heads/master

Debug log (UTC)

[19:51:46.537] New invocation is queued and will start shortly
[19:51:47.983] Starting the invocation (attempt 1)
[19:51:48.053] Preparing PubSub topic for "https://cr-buildbucket.appspot.com"
[19:51:48.054] PubSub topic is "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
[19:51:48.054] Buildbucket request:
{
  "bucket": "luci.webrtc.ci",
  "client_operation_id": "9062215650576393376",
  "parameters_json": "{\"builder_name\":\"Android32 Builder x86\",\"properties\":{\"$recipe_engine/scheduler\":{\"hostname\":\"luci-scheduler.appspot.com\",\"triggers\":[{\"gitiles\":{\"ref\":\"refs/heads/master\",\"repo\":\"https://webrtc.googlesource.com/src\",\"revision\":\"02fac7d86e64595d6c35c1460e491d7f04c01864\"},\"id\":\"https://webrtc.googlesource.com/src/+/refs/heads/master@02fac7d86e64595d6c35c1460e491d7f04c01864\",\"title\":\"02fac7d86e64595d6c35c1460e491d7f04c01864\",\"url\":\"https://webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864\"}]},\"branch\":\"refs/heads/master\",\"repository\":\"https://webrtc.googlesource.com/src\",\"revision\":\"02fac7d86e64595d6c35c1460e491d7f04c01864\"}}",
  "pubsub_callback": {
    "auth_token": "...",
    "topic": "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
  },
  "tags": [
    "builder:Android32 Builder x86",
    "scheduler_invocation_id:9062215650576393376",
    "scheduler_job_id:webrtc/Android32 Builder x86",
    "user_agent:luci-scheduler",
    "buildset:commit/git/02fac7d86e64595d6c35c1460e491d7f04c01864",
    "buildset:commit/gitiles/webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864",
    "gitiles_ref:refs/heads/master"
  ]
}
[19:51:49.464] Buildbucket response:
{
  "build": {
    "bucket": "luci.webrtc.ci",
    "canary_preference": "PROD",
    "created_by": "project:webrtc",
    "created_ts": "1573761108229169",
    "id": "8896785588136065472",
    "parameters_json": "{\"builder_name\": \"Android32 Builder x86\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://webrtc.googlesource.com/src\", \"revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\"}, \"id\": \"https://webrtc.googlesource.com/src/+/refs/heads/master@02fac7d86e64595d6c35c1460e491d7f04c01864\", \"title\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\", \"url\": \"https://webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://webrtc.googlesource.com/src\", \"revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\"}}",
    "project": "webrtc",
    "result_details_json": "{\"properties\": {}}",
    "service_account": "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
    "status": "SCHEDULED",
    "status_changed_ts": "1573761109114156",
    "tags": [
      "build_address:luci.webrtc.ci/Android32 Builder x86/15285",
      "builder:Android32 Builder x86",
      "buildset:commit/git/02fac7d86e64595d6c35c1460e491d7f04c01864",
      "buildset:commit/gitiles/webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9062215650576393376",
      "scheduler_job_id:webrtc/Android32 Builder x86",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/webrtc/buildbucket/cr-buildbucket.appspot.com/8896785588136065472/+/annotations",
      "swarming_tag:luci_project:webrtc",
      "swarming_tag:recipe_name:webrtc/standalone",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1573761109114389",
    "url": "https://ci.chromium.org/b/8896785588136065472",
    "utcnow_ts": "1573761109431245"
  }
}
[19:51:49.464] Task URL: https://ci.chromium.org/b/8896785588136065472
[19:51:49.465] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:2:0) after 1m0s
[19:52:49.652] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:2:0)
[19:52:49.652] Timer tick, asking Buildbucket for the build status
[19:52:51.155] Build 8896785588136065472: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[19:52:51.155] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:3:0) after 1m0s
[19:53:51.295] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:3:0)
[19:53:51.295] Timer tick, asking Buildbucket for the build status
[19:53:51.621] Build 8896785588136065472: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[19:53:51.621] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:4:0) after 1m0s
[19:54:51.726] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:4:0)
[19:54:51.726] Timer tick, asking Buildbucket for the build status
[19:54:52.993] Build 8896785588136065472: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[19:54:52.993] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:5:0) after 1m0s
[19:55:53.106] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:5:0)
[19:55:53.106] Timer tick, asking Buildbucket for the build status
[19:55:53.308] Build 8896785588136065472: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[19:55:53.308] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:6:0) after 1m0s
[19:56:53.987] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:6:0)
[19:56:53.987] Timer tick, asking Buildbucket for the build status
[19:56:54.115] Build 8896785588136065472: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[19:56:54.116] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:7:0) after 1m0s
[19:57:54.689] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:7:0)
[19:57:54.689] Timer tick, asking Buildbucket for the build status
[19:57:56.484] Build 8896785588136065472: status "SCHEDULED", result "", failure_reason "", cancelation_reason ""
[19:57:56.484] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:8:0) after 1m0s
[19:58:44.690] Received PubSub notification, asking Buildbucket for the build status
[19:58:45.054] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[19:58:56.939] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:8:0)
[19:58:56.939] Timer tick, asking Buildbucket for the build status
[19:58:57.330] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[19:58:57.330] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:10:0) after 1m0s
[19:59:57.676] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:10:0)
[19:59:57.676] Timer tick, asking Buildbucket for the build status
[19:59:58.713] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[19:59:58.713] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:11:0) after 1m0s
[20:00:58.939] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:11:0)
[20:00:58.939] Timer tick, asking Buildbucket for the build status
[20:00:59.135] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:00:59.135] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:12:0) after 1m0s
[20:01:59.162] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:12:0)
[20:01:59.162] Timer tick, asking Buildbucket for the build status
[20:01:59.324] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:01:59.324] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:13:0) after 1m0s
[20:02:59.456] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:13:0)
[20:02:59.456] Timer tick, asking Buildbucket for the build status
[20:03:00.357] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:03:00.357] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:14:0) after 1m0s
[20:04:00.510] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:14:0)
[20:04:00.510] Timer tick, asking Buildbucket for the build status
[20:04:01.356] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:04:01.356] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:15:0) after 1m0s
[20:05:01.449] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:15:0)
[20:05:01.449] Timer tick, asking Buildbucket for the build status
[20:05:01.822] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:05:01.822] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:16:0) after 1m0s
[20:06:01.893] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:16:0)
[20:06:01.893] Timer tick, asking Buildbucket for the build status
[20:06:02.290] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:06:02.290] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:17:0) after 1m0s
[20:07:02.370] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:17:0)
[20:07:02.371] Timer tick, asking Buildbucket for the build status
[20:07:02.586] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:07:02.586] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:18:0) after 1m0s
[20:08:02.705] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:18:0)
[20:08:02.705] Timer tick, asking Buildbucket for the build status
[20:08:02.860] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:08:02.860] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:19:0) after 1m0s
[20:09:03.029] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:19:0)
[20:09:03.029] Timer tick, asking Buildbucket for the build status
[20:09:03.524] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:09:03.524] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:20:0) after 1m0s
[20:10:03.933] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:20:0)
[20:10:03.933] Timer tick, asking Buildbucket for the build status
[20:10:04.133] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:10:04.133] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:21:0) after 1m0s
[20:11:04.244] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:21:0)
[20:11:04.244] Timer tick, asking Buildbucket for the build status
[20:11:04.525] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:11:04.525] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:22:0) after 1m0s
[20:12:04.664] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:22:0)
[20:12:04.664] Timer tick, asking Buildbucket for the build status
[20:12:04.913] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:12:04.913] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:23:0) after 1m0s
[20:13:05.065] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:23:0)
[20:13:05.065] Timer tick, asking Buildbucket for the build status
[20:13:05.323] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:13:05.323] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:24:0) after 1m0s
[20:14:05.346] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:24:0)
[20:14:05.346] Timer tick, asking Buildbucket for the build status
[20:14:06.129] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:14:06.129] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:25:0) after 1m0s
[20:15:06.202] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:25:0)
[20:15:06.202] Timer tick, asking Buildbucket for the build status
[20:15:07.590] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:15:07.591] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:26:0) after 1m0s
[20:16:07.725] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:26:0)
[20:16:07.725] Timer tick, asking Buildbucket for the build status
[20:16:07.951] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:16:07.951] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:27:0) after 1m0s
[20:17:08.201] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:27:0)
[20:17:08.201] Timer tick, asking Buildbucket for the build status
[20:17:09.550] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:17:09.550] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:28:0) after 1m0s
[20:18:09.689] Handling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:28:0)
[20:18:09.689] Timer tick, asking Buildbucket for the build status
[20:18:10.735] Build 8896785588136065472: status "STARTED", result "", failure_reason "", cancelation_reason ""
[20:18:10.735] Scheduling timer "check-buildbucket-build-status" (webrtc/Android32 Builder x86:9062215650576393376:29:0) after 1m0s
[20:18:59.326] Received PubSub notification, asking Buildbucket for the build status
[20:18:59.423] Build 8896785588136065472: status "COMPLETED", result "SUCCESS", failure_reason "", cancelation_reason ""
[20:18:59.423] Buildbucket build:
{
  "build": {
    "bucket": "luci.webrtc.ci",
    "canary_preference": "PROD",
    "completed_ts": "1573762738027548",
    "created_by": "project:webrtc",
    "created_ts": "1573761108229169",
    "id": "8896785588136065472",
    "parameters_json": "{\"builder_name\": \"Android32 Builder x86\", \"properties\": {\"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://webrtc.googlesource.com/src\", \"revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\"}, \"id\": \"https://webrtc.googlesource.com/src/+/refs/heads/master@02fac7d86e64595d6c35c1460e491d7f04c01864\", \"title\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\", \"url\": \"https://webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864\"}]}, \"branch\": \"refs/heads/master\", \"repository\": \"https://webrtc.googlesource.com/src\", \"revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\"}}",
    "project": "webrtc",
    "result": "SUCCESS",
    "result_details_json": "{\"properties\": {\"$recipe_engine/path\": {\"cache_dir\": \"/b/s/w/ir/cache\", \"temp_dir\": \"/b/s/w/ir/tmp/rt\"}, \"$recipe_engine/runtime\": {\"is_experimental\": false, \"is_luci\": true}, \"$recipe_engine/scheduler\": {\"hostname\": \"luci-scheduler.appspot.com\", \"triggers\": [{\"gitiles\": {\"ref\": \"refs/heads/master\", \"repo\": \"https://webrtc.googlesource.com/src\", \"revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\"}, \"id\": \"https://webrtc.googlesource.com/src/+/refs/heads/master@02fac7d86e64595d6c35c1460e491d7f04c01864\", \"title\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\", \"url\": \"https://webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864\"}]}, \"bot_id\": \"luci-webrtc-ci-xenial-0-je8d\", \"branch\": \"refs/heads/master\", \"buildername\": \"Android32 Builder x86\", \"buildnumber\": 15285, \"got_revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\", \"got_revision_cp\": \"refs/heads/master@{#29801}\", \"mastername\": \"client.webrtc\", \"path_config\": \"generic\", \"recipe\": \"webrtc/standalone\", \"repository\": \"https://webrtc.googlesource.com/src\", \"revision\": \"02fac7d86e64595d6c35c1460e491d7f04c01864\"}, \"swarming\": {\"bot_dimensions\": {\"caches\": [\"builder_236ad0e06710bb1aa723bf85e2819a73a68bd90c872fb4d36ce08423aaad3728_v2\", \"builder_3ede6a545b7f5f02d8e754bf3d80550bff536ffd8cd1f0e4f2eed09fd4ce3e22_v2\", \"builder_cd4d33579b11e7a69084e8598c51fb3312c4dc0339897950696e4b0a59553346_v2\", \"builder_cdf9911d0fb982b144366a069b820bab2cbe2663c4d5f6cc5be539135cc71a3a_v2\", \"git\", \"goma_v2\", \"vpython\"], \"cores\": [\"8\"], \"cpu\": [\"x86\", \"x86-64\", \"x86-64-Broadwell_GCE\", \"x86-64-avx2\"], \"gce\": [\"1\"], \"gpu\": [\"none\"], \"id\": [\"luci-webrtc-ci-xenial-0-je8d\"], \"image\": [\"chrome-xenial-19111101-9a63619e779\"], \"inside_docker\": [\"0\"], \"kvm\": [\"1\"], \"locale\": [\"en_US.UTF-8\"], \"machine_type\": [\"n1-standard-8\"], \"os\": [\"Linux\", \"Ubuntu\", \"Ubuntu-16.04\"], \"pool\": [\"luci.webrtc.ci\"], \"python\": [\"2.7.12\"], \"server_version\": [\"4628-14f2294\"], \"ssd\": [\"0\"], \"zone\": [\"us\", \"us-central\", \"us-central1\", \"us-central1-b\"]}}}",
    "service_account": "webrtc-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
    "started_ts": "1573761523338041",
    "status": "COMPLETED",
    "status_changed_ts": "1573762738671117",
    "tags": [
      "build_address:luci.webrtc.ci/Android32 Builder x86/15285",
      "builder:Android32 Builder x86",
      "buildset:commit/git/02fac7d86e64595d6c35c1460e491d7f04c01864",
      "buildset:commit/gitiles/webrtc.googlesource.com/src/+/02fac7d86e64595d6c35c1460e491d7f04c01864",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9062215650576393376",
      "scheduler_job_id:webrtc/Android32 Builder x86",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/webrtc/buildbucket/cr-buildbucket.appspot.com/8896785588136065472/+/annotations",
      "swarming_tag:luci_project:webrtc",
      "swarming_tag:os:Linux",
      "swarming_tag:recipe_name:webrtc/standalone",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:48844a83f5f2b310",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1573762738733694",
    "url": "https://ci.chromium.org/b/8896785588136065472",
    "utcnow_ts": "1573762739415287"
  }
}
[20:18:59.423] Invocation finished in 27m12.905604679s with status SUCCEEDED