1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/integration-cli
Brian Goff 84f25c7cb8 Fix race/deadlock in v1 plugin handlers
When a plugin is activated, and then `plugins.Handle` is called to
register a new handler for a given plugin type, a deadlock occurs when
for anything which calls `waitActive`, including `Get`, and `GetAll`.

This happens because `Handle()` is setting `activated` to `false` to
ensure that plugin handlers are run on next activation.
Maybe these handlers should be called immediately for any plugins which
are already registered... but to preserve the existing behavior while
fixing the deadlock, track if handlers have been run on plugins and
reset when a new handler is registered.

The simplest way to reproduce the deadlock with Docker is to add a `-v
/foo` to the test container created for the external graphdriver tests.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
(cherry picked from commit 2938dce794)
Signed-off-by: Victor Vieux <vieux@docker.com>
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2017-01-04 12:44:55 +01:00
..
fixtures Add integration test for stack deploy. 2016-11-10 11:28:18 -05:00
benchmark_test.go Windows: docker top implementation 2016-09-07 16:29:02 -07:00
check_test.go integration-cli: Add integration tests for swarm services + content trust 2016-12-15 20:44:22 -08:00
daemon.go plugins: container-rootfs-relative paths 2016-12-09 14:16:04 -08:00
daemon_swarm.go Add integration test for volume plugins on swarm 2016-12-16 10:44:26 -08:00
daemon_swarm_hack.go Remove unnecessary CmdWithArgs 2016-07-28 20:14:14 -04:00
daemon_unix.go Add support for docker run in swarm mode overlay 2016-09-07 21:20:41 -07:00
daemon_windows.go Swap usage of LazyDLL and LoadDLL to LazySystemDLL. 2016-11-22 18:40:35 -08:00
docker_api_attach_test.go Add Logs to ContainerAttachOptions 2016-10-19 11:39:00 -04:00
docker_api_auth_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_build_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_containers_test.go Fix restartpolicy max-retry validation 2016-12-02 13:40:40 -08:00
docker_api_create_test.go Fix /proc/<pid>/oom_score_adj: invalid argument error caused by empty env name 2016-11-07 08:15:26 -08:00
docker_api_events_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_exec_resize_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_exec_test.go add headers when using exec 2016-12-09 14:12:09 -08:00
docker_api_images_test.go Generate api/types:Image from the swagger spec 2016-10-20 13:24:23 -07:00
docker_api_info_test.go Windows: Require REST 1.25 or later 2016-10-31 14:33:59 -07:00
docker_api_inspect_test.go Windows: Require REST 1.25 or later 2016-10-31 14:33:59 -07:00
docker_api_inspect_unix_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_logs_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_network_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_resize_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_service_update_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_stats_test.go Rename Remote API to Engine API 2016-11-22 16:49:58 -08:00
docker_api_stats_unix_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_swarm_test.go secrets: add secret create and delete integration tests 2016-11-09 14:27:44 -05:00
docker_api_test.go always add but hide experimental cmds and flags 2016-11-08 04:55:27 -08:00
docker_api_update_unix_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_api_version_test.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
docker_api_volumes_test.go Use a config to generate swagger api types 2016-10-31 11:13:41 -04:00
docker_cli_attach_test.go Implement Pause Resume support for Windows 2016-10-11 16:23:35 -07:00
docker_cli_attach_unix_test.go Improve TestAttachClosedOnContainerStop 2016-10-05 15:52:09 -07:00
docker_cli_authz_plugin_v2_test.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
docker_cli_authz_unix_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_cli_build_test.go Fix image's CMD after WORKDIR in Dockerfile 2017-01-04 12:42:42 +01:00
docker_cli_build_unix_test.go Create a unified RunCommand function with Assert() 2016-08-23 15:11:46 -04:00
docker_cli_by_digest_test.go Update pull error handling 2016-11-10 17:34:12 -08:00
docker_cli_commit_test.go commit: do not change container labels on commit 2017-01-04 12:42:42 +01:00
docker_cli_config_test.go always add but hide experimental cmds and flags 2016-11-08 04:55:27 -08:00
docker_cli_cp_from_container_test.go Windows: Enable some cp integration tests 2016-08-30 14:32:10 -07:00
docker_cli_cp_test.go Fix bunch of typos 2016-10-29 15:03:26 +08:00
docker_cli_cp_to_container_test.go Windows: Enable some cp integration tests 2016-08-30 14:32:10 -07:00
docker_cli_cp_to_container_unix_test.go
docker_cli_cp_utils.go
docker_cli_create_test.go Add config parameter to change per-container stop timeout during daemon shutdown 2016-10-17 12:28:46 -07:00
docker_cli_daemon_plugins_test.go Enforce zero plugin refcount during disable. 2016-12-27 13:19:25 -08:00
docker_cli_daemon_test.go Fix volume plugin refecounting on daemon restart 2016-12-15 23:39:28 -08:00
docker_cli_diff_test.go Windows: Port a docker diff test 2016-10-28 12:21:54 -07:00
docker_cli_events_test.go [integration-cli] skip plugin tests on non-x86 2016-12-12 20:56:38 -08:00
docker_cli_events_unix_test.go support insecure registry in configuration reload 2016-10-20 07:54:31 +08:00
docker_cli_exec_test.go Stop holding container lock while waiting on streams 2016-10-28 12:19:22 -07:00
docker_cli_exec_unix_test.go Add TERM env var to exec 2016-09-12 09:20:27 -07:00
docker_cli_experimental_test.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
docker_cli_export_import_test.go
docker_cli_external_graphdriver_unix_test.go Fix race/deadlock in v1 plugin handlers 2017-01-04 12:44:55 +01:00
docker_cli_external_volume_driver_unix_test.go Fix volume Create to check against canonical driver name 2016-12-16 10:44:26 -08:00
docker_cli_health_test.go Adds container health support to docker ps filter 2016-10-28 15:43:04 -04:00
docker_cli_help_test.go fix a few golint errors 2016-11-19 23:50:06 -08:00
docker_cli_history_test.go Windows: Enable docker_cli_history_test 2016-08-30 09:31:33 -07:00
docker_cli_images_test.go all: replace loop with single append 2016-10-13 13:31:52 -07:00
docker_cli_import_test.go Fix issue in docker import -c with quoted flags 2016-09-01 16:28:22 -07:00
docker_cli_info_test.go Add expected 3rd party binaries commit ids to info 2016-11-09 07:42:44 -08:00
docker_cli_info_unix_test.go daemon: add a flag to override the default seccomp profile 2016-11-02 21:41:29 +01:00
docker_cli_inspect_test.go Fix inspect object by invalid reference 2017-01-04 12:42:40 +01:00
docker_cli_kill_test.go Add restart policy to restart policy tests 2016-11-09 17:13:42 -06:00
docker_cli_links_test.go Remove unnecessary json.Unmarshal wrapper. 2016-08-23 15:11:46 -04:00
docker_cli_links_unix_test.go
docker_cli_login_test.go
docker_cli_logout_test.go support legacy registries in exernal stores 2016-09-07 09:45:42 +02:00
docker_cli_logs_bench_test.go
docker_cli_logs_test.go Change reading order of tailfile 2016-11-14 11:58:01 -08:00
docker_cli_nat_test.go
docker_cli_netmode_test.go fix typos 2016-06-02 17:17:22 +08:00
docker_cli_network_unix_test.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
docker_cli_oom_killed_test.go Add the swapMemorySupport requirement to OOM tests 2016-05-10 11:28:00 -07:00
docker_cli_pause_test.go Implement Pause Resume support for Windows 2016-10-11 16:23:35 -07:00
docker_cli_plugins_test.go Support for docker content trust for plugins 2016-12-27 14:27:28 -08:00
docker_cli_port_test.go
docker_cli_proxy_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_cli_prune_unix_test.go Convert DanglingOnly to Filters for docker image prune 2016-12-07 16:08:18 -08:00
docker_cli_ps_test.go Adds container health support to docker ps filter 2016-10-28 15:43:04 -04:00
docker_cli_pull_local_test.go support legacy registries in exernal stores 2016-09-07 09:45:42 +02:00
docker_cli_pull_test.go Add class to repository scope 2016-12-09 14:10:29 -08:00
docker_cli_pull_trusted_test.go Fix API incompatibilities between notary v0.3.0 and v0.4.2: 2016-10-14 17:53:34 -07:00
docker_cli_push_test.go Update token server error test to not fail on retries 2016-09-01 15:18:15 -07:00
docker_cli_registry_user_agent_test.go modify func namt from TestUserAgentPassThroughOnPull to TestUserAgentPassThrough 2016-08-08 11:40:20 +08:00
docker_cli_rename_test.go Support plugins in docker inspect 2016-12-05 00:39:30 -08:00
docker_cli_restart_test.go Fix restartpolicy max-retry validation 2016-12-02 13:40:40 -08:00
docker_cli_rm_test.go
docker_cli_rmi_test.go Move some test fixtures to go 2016-09-07 17:30:35 -04:00
docker_cli_run_test.go xFix issue for --hostname when running in "--net=host" 2016-12-09 14:42:16 -08:00
docker_cli_run_unix_test.go Fixes some integration-cli on userns 2016-11-23 12:27:16 -08:00
docker_cli_save_load_test.go add defer file.Close to avoid potential fd leak 2016-08-10 08:36:09 +08:00
docker_cli_save_load_unix_test.go Validate docker-load receives a tar file 2016-10-31 15:30:55 +02:00
docker_cli_search_test.go Use spf13/cobra for docker search 2016-06-03 19:50:01 +02:00
docker_cli_secret_create_test.go Add --file flag for docker secret create command 2017-01-04 12:44:55 +01:00
docker_cli_secret_inspect_test.go update secret inspect to support IDs 2016-11-22 18:43:53 -08:00
docker_cli_service_create_test.go Fix issue where TmpfsOptions are not sent to swarm 2016-12-02 13:43:02 -08:00
docker_cli_service_health_test.go integration: wait for task running in TestServiceHealthRun 2016-09-29 07:44:00 -07:00
docker_cli_service_logs_experimental_test.go improve TestServiceLogs for the goroutine issue #28915 2016-12-07 16:10:56 -08:00
docker_cli_service_scale_test.go validate service parameter in client side to avoid api call 2016-09-26 17:18:02 +08:00
docker_cli_service_update_test.go do not force target type for secret references 2016-11-21 14:45:39 -08:00
docker_cli_sni_test.go
docker_cli_stack_test.go Restore stack deploy integration test with dab 2016-11-10 11:28:19 -05:00
docker_cli_start_test.go Implement Pause Resume support for Windows 2016-10-11 16:23:35 -07:00
docker_cli_stats_test.go
docker_cli_stop_test.go
docker_cli_swarm_test.go api: allow creating a network of which name is the prefix of the ID of a swarm network 2016-12-15 22:59:42 -08:00
docker_cli_swarm_unix_test.go Add integration test for volume plugins on swarm 2016-12-16 10:44:26 -08:00
docker_cli_tag_test.go Remove deprecated -f flag on docker tag 2016-06-01 09:44:25 -07:00
docker_cli_top_test.go Windows: docker top implementation 2016-09-07 16:29:02 -07:00
docker_cli_update_test.go Forbid update restart policy of container with AutoRemove flag 2016-08-16 15:36:13 +08:00
docker_cli_update_unix_test.go Add engine-api types to docker 2016-09-07 11:05:58 -07:00
docker_cli_userns_test.go Add test for checking created directories on remapped root 2016-09-05 13:02:13 +03:00
docker_cli_v2_only_test.go
docker_cli_version_test.go Align output of docker version again 2016-11-29 14:07:39 -08:00
docker_cli_volume_test.go Fix volume Create to check against canonical driver name 2016-12-16 10:44:26 -08:00
docker_cli_wait_test.go
docker_deprecated_api_v124_test.go [nit] integration-cli: obey Go's naming convention 2016-09-30 01:21:05 +00:00
docker_deprecated_api_v124_unix_test.go remove deprecated feature of passing HostConfig at API container start 2016-06-01 22:25:17 +08:00
docker_experimental_network_test.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
docker_hub_pull_suite_test.go Remove unnecessary CmdWithArgs 2016-07-28 20:14:14 -04:00
docker_test_vars.go Make experimental a runtime flag 2016-10-24 15:20:01 -07:00
docker_utils.go Implement content addressability for plugins 2016-12-27 13:31:14 -08:00
events_utils.go test: fix trivial code convention noncompliance 2016-09-12 07:36:52 +00:00
fixtures.go Move some test fixtures to go 2016-09-07 17:30:35 -04:00
fixtures_linux_daemon.go Use runc version built without ambient capabilities 2016-11-04 17:25:28 +00:00
npipe.go
npipe_windows.go
registry.go add defer file.Close to avoid potential fd leak 2016-08-10 08:36:09 +08:00
registry_mock.go
requirements.go Windows: Add cpu count option 2016-11-04 13:38:50 -07:00
requirements_unix.go Make graphdriver plugin use plugin BasePath 2016-12-15 22:19:22 -08:00
test_vars.go Windows: docker top implementation 2016-09-07 16:29:02 -07:00
test_vars_exec.go
test_vars_noexec.go
test_vars_noseccomp.go
test_vars_seccomp.go
test_vars_unix.go Windows: docker top implementation 2016-09-07 16:29:02 -07:00
test_vars_windows.go Windows: docker top implementation 2016-09-07 16:29:02 -07:00
trust_server.go Support for docker content trust for plugins 2016-12-27 14:27:28 -08:00
utils.go Create a unified RunCommand function with Assert() 2016-08-23 15:11:46 -04:00