moby/integration-cli
Josh Hawn 74df05ccaa [graph] Use a pipe for downloads to write progress
The process of pulling an image spawns a new goroutine for each layer in the
image manifest. If any of these downloads fail we would stop everything and
return the error, even though other goroutines would still be running and
writing output through a progress reader which is attached to an http response
writer. Since the request handler had already returned from the first error,
the http server panics when one of these download goroutines makes a write to
the response writer buffer.

This patch prevents this crash in the daemon http server by waiting for all of
the download goroutines to complete, even if one of them fails. Only then does
it return, terminating the request handler.

Docker-DCO-1.1-Signed-off-by: Josh Hawn <josh.hawn@docker.com> (github: jlhawn)

(cherry picked from commit d80c4244d3)
2015-08-06 09:14:16 -07:00
..
fixtures Add integration cli trust tests 2015-07-24 14:08:20 -07:00
check_test.go Add integration cli trust tests 2015-07-24 14:08:20 -07:00
docker_api_attach_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_api_containers_test.go Fix docker cp Behavior With Symlinks 2015-07-30 17:21:20 -07:00
docker_api_events_test.go Send resp immediately on GET /events 2015-07-02 11:45:24 -04:00
docker_api_exec_resize_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_api_exec_test.go Ensure body is closed after error is checked 2015-07-23 14:34:38 +02:00
docker_api_images_test.go Ensure body is closed after error is checked 2015-07-23 14:34:38 +02:00
docker_api_info_test.go Fixing statusCode checks for sockRequest 2015-04-23 15:35:56 -07:00
docker_api_inspect_test.go Expose new mount points structs in inspect. 2015-07-21 15:33:05 -07:00
docker_api_logs_test.go Ensure body is closed after error is checked 2015-07-23 14:34:38 +02:00
docker_api_network_test.go register libnetwork API and UI with docker parent chain 2015-06-18 12:07:58 -07:00
docker_api_resize_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_api_service_test.go attaching services api and UI chain to docker parent 2015-06-19 09:19:09 -07:00
docker_api_stats_test.go Ensure body is closed after error is checked 2015-07-23 14:34:38 +02:00
docker_api_test.go Ensure body is closed after error is checked 2015-07-23 14:34:38 +02:00
docker_api_version_test.go Fixing statusCode checks for sockRequest 2015-04-23 15:35:56 -07:00
docker_cli_attach_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_attach_unix_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_build_test.go [api/client] Tag resolved digest from Dockerfile 2015-07-29 16:53:10 -07:00
docker_cli_build_unix_test.go Add ulimit to docker build. 2015-07-23 10:26:06 +08:00
docker_cli_by_digest_test.go [graph] Use a pipe for downloads to write progress 2015-08-06 09:14:16 -07:00
docker_cli_commit_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_config_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_cp_from_container_test.go Fix docker cp Behavior With Symlinks 2015-07-30 17:21:20 -07:00
docker_cli_cp_test.go Fix docker cp Behavior With Symlinks 2015-07-30 17:21:20 -07:00
docker_cli_cp_to_container_test.go Fix docker cp Behavior With Symlinks 2015-07-30 17:21:20 -07:00
docker_cli_cp_utils.go Fix docker cp Behavior With Symlinks 2015-07-30 17:21:20 -07:00
docker_cli_create_test.go Rename to flags and environment variables to content trust 2015-07-24 16:31:18 -07:00
docker_cli_daemon_experimental_test.go Vendoring in libnetwork for native multihost networking 2015-06-22 04:15:41 -07:00
docker_cli_daemon_test.go Add test code to cover issue #14859 2015-07-31 08:59:42 -07:00
docker_cli_diff_test.go dockerCmd when possible 2015-07-20 14:55:40 +08:00
docker_cli_events_test.go integration-cli: New docker cp integration tests 2015-07-21 15:19:52 -07:00
docker_cli_events_unix_test.go Use suite for integration-cli 2015-04-21 10:28:52 -07:00
docker_cli_exec_test.go Don't mount /proc as ro 2015-07-30 17:21:20 -07:00
docker_cli_exec_unix_test.go Fix golint warnings for integration-cli 2015-07-22 14:03:50 +01:00
docker_cli_experimental_test.go dockerCmd when possible 2015-07-20 14:55:40 +08:00
docker_cli_export_import_test.go dockerCmd when possible 2015-07-20 14:55:40 +08:00
docker_cli_help_test.go Rename to flags and environment variables to content trust 2015-07-24 16:31:18 -07:00
docker_cli_history_test.go dockerCmd when possible 2015-07-20 14:55:40 +08:00
docker_cli_images_test.go Fix golint warnings for integration-cli 2015-07-22 14:03:50 +01:00
docker_cli_import_test.go dockerCmd when possible 2015-07-20 14:55:40 +08:00
docker_cli_info_test.go dockerCmd when possible 2015-07-20 14:55:40 +08:00
docker_cli_inspect_experimental_test.go Expose new mount points structs in inspect. 2015-07-21 15:33:05 -07:00
docker_cli_inspect_test.go Format times in inspect command with a template as RFC3339Nano 2015-07-28 09:35:14 -07:00
docker_cli_kill_test.go Keep backwards compatibility in kill api. 2015-07-29 16:44:21 -07:00
docker_cli_links_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_links_unix_test.go Add better output for TestLinksEtcHostsContentMatch to help debug #14774 2015-07-20 16:46:51 -07:00
docker_cli_login_test.go Use suite for integration-cli 2015-04-21 10:28:52 -07:00
docker_cli_logs_test.go Merge pull request #14442 from cpuguy83/refactor_logdrvier_reader 2015-07-22 11:54:35 -07:00
docker_cli_nat_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_network_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_pause_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_port_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_port_unix_test.go Use dockerCmd when possible (#14603) 2015-07-14 21:52:43 +02:00
docker_cli_proxy_test.go Add and modify tests for legacy and new daemon invokations 2015-07-23 20:31:43 -04:00
docker_cli_ps_test.go Fix "docker ps" with no containers regression 2015-07-23 13:23:24 -07:00
docker_cli_pull_test.go Rename to flags and environment variables to content trust 2015-07-24 16:31:18 -07:00
docker_cli_push_test.go Updated to use latest version of notary 2015-08-03 09:37:35 -07:00
docker_cli_rename_test.go Refactor : Use dockerCmd in integration-cli tests 2015-07-17 04:07:12 +08:00
docker_cli_restart_test.go Merge pull request #13711 from calavera/version_volumes_inspect 2015-07-22 09:02:00 +02:00
docker_cli_rm_test.go Refactor : Use dockerCmd in integration-cli tests 2015-07-17 04:07:12 +08:00
docker_cli_rmi_test.go Merge pull request #14578 from mountkin/fix-rmi-image-not-found 2015-07-16 18:02:51 -07:00
docker_cli_run_test.go Fix the proc integration test & include missing AA profile 2015-08-03 17:49:58 -07:00
docker_cli_run_unix_test.go Fix golint warnings for integration-cli 2015-07-22 14:03:50 +01:00
docker_cli_save_load_test.go Fix golint warnings for integration-cli 2015-07-22 14:03:50 +01:00
docker_cli_save_load_unix_test.go CI: use dockerCmd in integration-cli when possible 2015-07-22 17:55:41 +08:00
docker_cli_search_test.go CI: use dockerCmd in integration-cli when possible 2015-07-22 17:55:41 +08:00
docker_cli_service_test.go CI: use dockerCmd in integration-cli when possible 2015-07-22 17:55:41 +08:00
docker_cli_start_test.go CI: use dockerCmd in integration-cli when possible 2015-07-22 17:55:41 +08:00
docker_cli_start_volume_driver_unix_test.go Promote volume drivers from experimental to master. 2015-07-21 09:32:44 -07:00
docker_cli_stats_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_tag_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_top_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_version_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_cli_wait_test.go Recfactor: Use dockerCmd when possible in integration-cli tests 2015-07-20 14:44:22 +08:00
docker_test_vars.go Volumes refactor and external plugin implementation. 2015-05-21 20:34:17 -07:00
docker_test_vars_cli.go integration-cli: add mechanism to skip tests 2015-02-17 00:43:41 -08:00
docker_test_vars_daemon.go integration-cli: add mechanism to skip tests 2015-02-17 00:43:41 -08:00
docker_utils.go Add tests simulating an evil server 2015-07-24 16:31:18 -07:00
registry.go [graph] Enforce manifest/layer digest verification 2015-08-03 16:22:33 -07:00
requirements.go Add integration cli trust tests 2015-07-24 14:08:20 -07:00
requirements_unix.go Fix golint warnings for integration-cli 2015-07-22 14:03:50 +01:00
test_vars_exec.go integration-cli: add test requirement ExecSupport 2015-02-20 23:24:30 -08:00
test_vars_noexec.go integration-cli: add test requirement ExecSupport 2015-02-20 23:24:30 -08:00
test_vars_unix.go pkg/archive: adjust chmod bits on windows 2015-03-04 14:10:37 -08:00
test_vars_windows.go Change windows default permissions to 755 not 711, read access for all poses little security risk and prevents breaking existing Dockerfiles 2015-03-20 21:54:33 -07:00
trust_server.go Updated to use latest version of notary 2015-08-03 09:37:35 -07:00
utils.go Add trust tests for Docker create, run, push, and pull 2015-07-24 14:08:20 -07:00