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

Definition (rev 58aa5b5aa51b86b4526dd8cca55bbc0cc337bee6)

buildbucket: <
  server: "cr-buildbucket.appspot.com"
  bucket: "luci.boringssl.ci"
  builder: "android_arm"
>

Incoming triggers

Incoming properties

{
  "branch": "refs/heads/master",
  "repository": "https://boringssl.googlesource.com/boringssl.git",
  "revision": "c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231"
}

Incoming tags

  • buildset:commit/git/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231
  • buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231
  • gitiles_ref:refs/heads/master

Debug log (UTC)

[18:03:54.544] New invocation is queued and will start shortly
[18:03:55.715] Starting the invocation (attempt 1)
[18:03:55.776] Preparing PubSub topic for "https://cr-buildbucket.appspot.com"
[18:03:55.776] PubSub topic is "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
[18:03:55.776] Buildbucket request:
{
  "bucket": "luci.boringssl.ci",
  "client_operation_id": "9080523024163895552",
  "parameters_json": "{\"builder_name\":\"android_arm\",\"properties\":{\"branch\":\"refs/heads/master\",\"repository\":\"https://boringssl.googlesource.com/boringssl.git\",\"revision\":\"c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231\"}}",
  "pubsub_callback": {
    "auth_token": "...",
    "topic": "projects/luci-scheduler/topics/scheduler.buildbucket.cr-buildbucket~appspot.gserviceaccount.com"
  },
  "tags": [
    "builder:android_arm",
    "scheduler_invocation_id:9080523024163895552",
    "scheduler_job_id:boringssl/android_arm",
    "user_agent:luci-scheduler",
    "buildset:commit/git/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231",
    "buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231",
    "gitiles_ref:refs/heads/master"
  ]
}
[18:03:56.489] Buildbucket response:
{
  "build": {
    "bucket": "luci.boringssl.ci",
    "canary_preference": "AUTO",
    "created_by": "project:boringssl",
    "created_ts": "1556301835961371",
    "id": "8915092962013809008",
    "parameters_json": "{\"builder_name\": \"android_arm\", \"properties\": {\"branch\": \"refs/heads/master\", \"repository\": \"https://boringssl.googlesource.com/boringssl.git\", \"revision\": \"c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231\"}}",
    "project": "boringssl",
    "result_details_json": "{\"properties\": {}}",
    "service_account": "boringssl-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
    "status": "SCHEDULED",
    "status_changed_ts": "1556301836302005",
    "tags": [
      "builder:android_arm",
      "buildset:commit/git/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231",
      "buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9080523024163895552",
      "scheduler_job_id:boringssl/android_arm",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/boringssl/buildbucket/cr-buildbucket.appspot.com/8915092962013809008/+/annotations",
      "swarming_tag:luci_project:boringssl",
      "swarming_tag:recipe_name:boringssl",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1556301836302120",
    "url": "https://ci.chromium.org/b/8915092962013809008",
    "utcnow_ts": "1556301836478153"
  }
}
[18:03:56.489] Task URL: https://ci.chromium.org/b/8915092962013809008
[18:03:56.489] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:2:0) after 1m0s
[18:04:24.869] Received PubSub notification, asking Buildbucket for the build status
[18:04:25.058] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:04:56.458] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:2:0)
[18:04:56.458] Timer tick, asking Buildbucket for the build status
[18:04:56.511] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:04:56.511] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:4:0) after 1m0s
[18:05:56.536] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:4:0)
[18:05:56.536] Timer tick, asking Buildbucket for the build status
[18:05:56.659] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:05:56.659] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:5:0) after 1m0s
[18:06:56.680] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:5:0)
[18:06:56.680] Timer tick, asking Buildbucket for the build status
[18:06:56.756] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:06:56.756] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:6:0) after 1m0s
[18:07:56.763] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:6:0)
[18:07:56.763] Timer tick, asking Buildbucket for the build status
[18:07:56.994] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:07:56.994] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:7:0) after 1m0s
[18:08:57.014] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:7:0)
[18:08:57.014] Timer tick, asking Buildbucket for the build status
[18:08:57.062] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:08:57.062] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:8:0) after 1m0s
[18:09:57.074] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:8:0)
[18:09:57.074] Timer tick, asking Buildbucket for the build status
[18:09:57.129] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:09:57.130] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:9:0) after 1m0s
[18:10:57.116] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:9:0)
[18:10:57.116] Timer tick, asking Buildbucket for the build status
[18:10:57.258] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:10:57.258] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:10:0) after 1m0s
[18:11:57.289] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:10:0)
[18:11:57.289] Timer tick, asking Buildbucket for the build status
[18:11:57.340] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:11:57.340] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:11:0) after 1m0s
[18:12:57.357] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:11:0)
[18:12:57.357] Timer tick, asking Buildbucket for the build status
[18:12:57.426] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:12:57.426] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:12:0) after 1m0s
[18:13:57.447] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:12:0)
[18:13:57.447] Timer tick, asking Buildbucket for the build status
[18:13:57.489] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:13:57.489] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:13:0) after 1m0s
[18:14:57.513] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:13:0)
[18:14:57.513] Timer tick, asking Buildbucket for the build status
[18:14:57.597] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:14:57.597] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:14:0) after 1m0s
[18:15:57.642] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:14:0)
[18:15:57.642] Timer tick, asking Buildbucket for the build status
[18:15:57.715] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:15:57.716] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:15:0) after 1m0s
[18:16:57.744] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:15:0)
[18:16:57.744] Timer tick, asking Buildbucket for the build status
[18:16:57.908] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:16:57.908] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:16:0) after 1m0s
[18:17:57.935] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:16:0)
[18:17:57.935] Timer tick, asking Buildbucket for the build status
[18:17:58.044] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:17:58.044] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:17:0) after 1m0s
[18:18:58.140] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:17:0)
[18:18:58.140] Timer tick, asking Buildbucket for the build status
[18:18:58.336] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:18:58.336] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:18:0) after 1m0s
[18:19:58.368] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:18:0)
[18:19:58.368] Timer tick, asking Buildbucket for the build status
[18:19:58.412] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:19:58.412] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:19:0) after 1m0s
[18:20:58.421] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:19:0)
[18:20:58.421] Timer tick, asking Buildbucket for the build status
[18:20:58.508] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:20:58.508] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:20:0) after 1m0s
[18:21:58.486] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:20:0)
[18:21:58.486] Timer tick, asking Buildbucket for the build status
[18:21:58.599] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:21:58.599] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:21:0) after 1m0s
[18:22:58.626] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:21:0)
[18:22:58.626] Timer tick, asking Buildbucket for the build status
[18:22:58.697] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:22:58.697] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:22:0) after 1m0s
[18:23:58.683] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:22:0)
[18:23:58.683] Timer tick, asking Buildbucket for the build status
[18:23:58.721] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:23:58.721] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:23:0) after 1m0s
[18:24:58.742] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:23:0)
[18:24:58.742] Timer tick, asking Buildbucket for the build status
[18:24:58.947] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:24:58.947] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:24:0) after 1m0s
[18:25:58.986] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:24:0)
[18:25:58.987] Timer tick, asking Buildbucket for the build status
[18:25:59.045] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:25:59.045] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:25:0) after 1m0s
[18:26:59.019] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:25:0)
[18:26:59.019] Timer tick, asking Buildbucket for the build status
[18:26:59.120] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:26:59.120] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:26:0) after 1m0s
[18:27:59.100] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:26:0)
[18:27:59.100] Timer tick, asking Buildbucket for the build status
[18:27:59.211] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:27:59.211] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:27:0) after 1m0s
[18:28:59.213] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:27:0)
[18:28:59.213] Timer tick, asking Buildbucket for the build status
[18:28:59.475] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:28:59.475] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:28:0) after 1m0s
[18:29:59.479] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:28:0)
[18:29:59.479] Timer tick, asking Buildbucket for the build status
[18:29:59.519] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:29:59.519] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:29:0) after 1m0s
[18:30:59.534] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:29:0)
[18:30:59.534] Timer tick, asking Buildbucket for the build status
[18:30:59.582] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:30:59.582] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:30:0) after 1m0s
[18:31:59.654] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:30:0)
[18:31:59.654] Timer tick, asking Buildbucket for the build status
[18:31:59.721] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:31:59.721] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:31:0) after 1m0s
[18:32:59.741] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:31:0)
[18:32:59.741] Timer tick, asking Buildbucket for the build status
[18:32:59.962] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:32:59.962] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:32:0) after 1m0s
[18:33:59.991] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:32:0)
[18:33:59.991] Timer tick, asking Buildbucket for the build status
[18:34:00.198] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:34:00.198] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:33:0) after 1m0s
[18:35:00.219] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:33:0)
[18:35:00.219] Timer tick, asking Buildbucket for the build status
[18:35:00.288] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:35:00.288] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:34:0) after 1m0s
[18:36:00.322] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:34:0)
[18:36:00.322] Timer tick, asking Buildbucket for the build status
[18:36:00.481] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:36:00.481] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:35:0) after 1m0s
[18:37:00.508] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:35:0)
[18:37:00.508] Timer tick, asking Buildbucket for the build status
[18:37:00.671] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:37:00.671] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:36:0) after 1m0s
[18:38:00.692] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:36:0)
[18:38:00.692] Timer tick, asking Buildbucket for the build status
[18:38:00.781] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:38:00.781] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:37:0) after 1m0s
[18:39:00.811] Handling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:37:0)
[18:39:00.811] Timer tick, asking Buildbucket for the build status
[18:39:00.872] Build 8915092962013809008: status "STARTED", result "", failure_reason "", cancelation_reason ""
[18:39:00.872] Scheduling timer "check-buildbucket-build-status" (boringssl/android_arm:9080523024163895552:38:0) after 1m0s
[18:39:45.695] Received PubSub notification, asking Buildbucket for the build status
[18:39:45.780] Build 8915092962013809008: status "COMPLETED", result "SUCCESS", failure_reason "", cancelation_reason ""
[18:39:45.780] Buildbucket build:
{
  "build": {
    "bucket": "luci.boringssl.ci",
    "canary_preference": "AUTO",
    "completed_ts": "1556303985003781",
    "created_by": "project:boringssl",
    "created_ts": "1556301835961371",
    "id": "8915092962013809008",
    "parameters_json": "{\"builder_name\": \"android_arm\", \"properties\": {\"branch\": \"refs/heads/master\", \"repository\": \"https://boringssl.googlesource.com/boringssl.git\", \"revision\": \"c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231\"}}",
    "project": "boringssl",
    "result": "SUCCESS",
    "result_details_json": "{\"properties\": {\"$recipe_engine/path\": {\"cache_dir\": \"/b/swarming/w/ir/cache\", \"temp_dir\": \"/b/swarming/w/ir/tmp/rt\"}, \"$recipe_engine/runtime\": {\"is_experimental\": false, \"is_luci\": true}, \"bot_id\": \"build6-b9--device5\", \"branch\": \"refs/heads/master\", \"buildername\": \"android_arm\", \"got_revision\": \"c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231\", \"path_config\": \"generic\", \"recipe\": \"boringssl\", \"repository\": \"https://boringssl.googlesource.com/boringssl.git\", \"revision\": \"c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231\"}, \"swarming\": {\"bot_dimensions\": {\"android_devices\": [\"1\"], \"caches\": [\"builder_45439cda8b651fd81912b3d973028e6cc1d555c9a7b9eda43e6783a4547685a8_v2\", \"git\", \"vpython\"], \"cpu_governor\": [\"powersave\"], \"device_gms_core_version\": [\"8.1.86\"], \"device_os\": [\"M\", \"MMB29Q\"], \"device_os_flavor\": [\"google\"], \"device_playstore_version\": [\"5.12.7\"], \"device_type\": [\"bullhead\"], \"gce\": [\"0\"], \"id\": [\"build6-b9--device5\"], \"inside_docker\": [\"1\", \"stock\"], \"locale\": [\"en_US.UTF-8\"], \"os\": [\"Android\"], \"pool\": [\"luci.flex.ci\"], \"python\": [\"2.7.12\"], \"server_version\": [\"4274-a0a5f8c\"], \"temp_band\": [\"\u003c30\"], \"zone\": [\"us\", \"us-mtv\", \"us-mtv-chops\", \"us-mtv-chops-b\", \"us-mtv-chops-b-9\"]}}}",
    "service_account": "boringssl-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
    "started_ts": "1556301864031274",
    "status": "COMPLETED",
    "status_changed_ts": "1556303985457651",
    "tags": [
      "builder:android_arm",
      "buildset:commit/git/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231",
      "buildset:commit/gitiles/boringssl.googlesource.com/boringssl/+/c1d8c5b0e0ff4177ec06eed58ebcfd5a75b7f231",
      "gitiles_ref:refs/heads/master",
      "scheduler_invocation_id:9080523024163895552",
      "scheduler_job_id:boringssl/android_arm",
      "swarming_hostname:chromium-swarm.appspot.com",
      "swarming_tag:log_location:logdog://logs.chromium.org/boringssl/buildbucket/cr-buildbucket.appspot.com/8915092962013809008/+/annotations",
      "swarming_tag:luci_project:boringssl",
      "swarming_tag:os:Android",
      "swarming_tag:recipe_name:boringssl",
      "swarming_tag:recipe_package:infra/recipe_bundles/chromium.googlesource.com/chromium/tools/build",
      "swarming_task_id:4473a2f9a54ca910",
      "user_agent:luci-scheduler"
    ],
    "updated_ts": "1556303985461125",
    "url": "https://ci.chromium.org/b/8915092962013809008",
    "utcnow_ts": "1556303985772187"
  }
}
[18:39:45.780] Invocation finished in 35m51.253534787s with status SUCCEEDED