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 1ae9dcf97d Fixes some issues with jsonfile write/read
This cleans up some of the use of the filepoller which makes reading
significantly more robust and gives fewer changes to fallback to the
polling based watcher.
In a lot of cases, if the file was being rotated while we were adding it
to the watcher, it would return an error that the file doesn't exist and
would fallback.
In some cases this fallback could be triggered multiple times even if we
were already on the fallback/poll-based watcher.

It also fixes an open file leak caused by not closing files properly on
rotate, as well as not closing files that were read via the `tail`
function until after the log reader is completed.

Prior to the above changes, it was relatively simple to cause the log
reader to error out by having quick rotations, for example:
```
$ docker run --name test --log-opt max-size=10b --log-opt max-files=10
-d busybox sh -c 'while true; do usleep 500000; echo hello; done'
$ docker logs -f test
```
After these changes I can run this forever without error.

Another fix removes 2 `os.Stat` calls when rotating files. The stat
calls are not needed since we are just calling `os.Rename` anyway, which
will in turn also just produce the same error that `Stat` would.
These `Stat` calls were also quite expensive.
Removing these stat calls also seemed to resolve an issue causing slow
memory growth on the daemon.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2016-03-21 11:05:58 -04:00
..
fixtures distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
check_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
daemon.go integration-cli: move daemon stuff to its own file 2016-03-04 09:29:24 +01:00
docker_api_attach_test.go Fix typos found across repository 2015-12-13 18:04:12 +02:00
docker_api_build_test.go
docker_api_containers_test.go Merge pull request #20774 from hqhq/hq_vender_engine_api 2016-02-29 18:48:55 +01:00
docker_api_create_test.go Fix error message in container creation 2016-01-25 11:45:20 -08:00
docker_api_events_test.go Windows CI: Integrity check for busybox top 2016-02-24 11:00:47 -08:00
docker_api_exec_resize_test.go
docker_api_exec_test.go Fix TestExecApiStartWithDetach on WindowsTP4 2016-02-25 14:27:22 +01:00
docker_api_images_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_api_info_test.go Added additional container information to "docker info". 2016-01-11 19:14:44 -05:00
docker_api_inspect_test.go Windows CI: PortTestInspectApi* 2016-01-26 20:23:40 -08:00
docker_api_inspect_unix_test.go
docker_api_logs_test.go Windows CI Reliablity: TestLogsApiWithStdout 2016-03-02 10:26:15 -08:00
docker_api_network_test.go 1.return status code http.StatusNoContent in deleting network when successful 2016-03-10 00:28:55 +08:00
docker_api_resize_test.go Windows CI: Port docker_api_resize_test.go 2016-02-03 20:30:06 -08:00
docker_api_stats_test.go Optimize TestApiStatsNetworkStats and TestApiStatsNetworkStatsVersioning 2016-02-01 10:26:27 +08:00
docker_api_test.go Support TLS remote test daemon 2016-02-25 14:12:17 -05:00
docker_api_update_unix_test.go Fix minor vet warnings 2016-02-03 10:43:01 -08:00
docker_api_version_test.go Modify import paths to point to the new engine-api package. 2016-01-06 19:48:59 -05:00
docker_api_volumes_test.go integration-cli: remove not necessary -d again 2016-02-28 13:48:15 +01:00
docker_cli_attach_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_attach_unix_test.go Improve remote integration-cli tests 2016-02-11 07:31:49 -08:00
docker_cli_authz_unix_test.go Unskip authz events test after fixes 2016-02-20 20:19:54 -06:00
docker_cli_build_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
docker_cli_build_unix_test.go Fix events test flakiness. 2016-02-18 16:10:29 -05:00
docker_cli_by_digest_test.go integration-cli: remove not necessary -d again 2016-02-28 13:48:15 +01:00
docker_cli_commit_test.go Vendor engine-api to 70d266e96080e3c3d63c55a4d8659e00ac1f7e6c 2016-02-29 19:28:37 +08:00
docker_cli_config_test.go Support TLS remote test daemon 2016-02-25 14:12:17 -05:00
docker_cli_cp_from_container_test.go
docker_cli_cp_test.go Windows CI: Deal with failing tests for TP4 2016-01-08 13:49:43 -08:00
docker_cli_cp_to_container_test.go Fix typos found across repository 2015-12-13 18:04:12 +02:00
docker_cli_cp_to_container_unix_test.go Fix copy chown settings to not default to real root 2016-02-18 14:44:13 -08:00
docker_cli_cp_utils.go
docker_cli_create_test.go Fix docker run for 64 byte hex ID 2016-03-11 10:02:47 -08:00
docker_cli_daemon_test.go Merge pull request #20476 from wenchma/19425-TestDaemonStartWithDaemonCommand 2016-03-11 10:54:48 -05:00
docker_cli_diff_test.go *: purge dockerinit from source code 2016-01-26 23:47:02 +11:00
docker_cli_events_test.go Compare event nanoseconds properly to filter since a specific date. 2016-03-08 17:07:58 -05:00
docker_cli_events_unix_test.go Fix flaky OOM tests 2016-02-23 15:26:26 -05:00
docker_cli_exec_test.go make TestExecInspectIDs less racy 2016-03-08 09:51:39 -08:00
docker_cli_exec_unix_test.go Revert hack in TestExecTTY 2016-03-08 10:54:18 +08:00
docker_cli_experimental_test.go Move userns cli test to a separate file, remove experimental flag 2016-02-09 09:31:09 +02:00
docker_cli_export_import_test.go
docker_cli_external_graphdriver_unix_test.go Add test to make sure raw logs are properly activated. 2016-02-01 16:52:31 -05:00
docker_cli_help_test.go Support TLS remote test daemon 2016-02-25 14:12:17 -05:00
docker_cli_history_test.go Optimize slow bottleneck test of DockerSuite.TestBuildHistory. 2016-03-02 20:37:47 +00:00
docker_cli_images_test.go Fix image filter 2016-01-14 08:17:40 +00:00
docker_cli_import_test.go Fix docker import on compressed data 2016-02-16 11:19:23 -08:00
docker_cli_info_test.go Add regression tests for client debug flag. 2016-02-02 16:57:36 -05:00
docker_cli_inspect_experimental_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_inspect_test.go Windows CI: Integrity check for busybox top 2016-02-24 11:00:47 -08:00
docker_cli_kill_test.go Windows CI: Port TestKill* 2016-02-24 13:33:25 -08:00
docker_cli_links_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_links_unix_test.go
docker_cli_login_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
docker_cli_logout_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
docker_cli_logs_bench_test.go Fixes some issues with jsonfile write/read 2016-03-21 11:05:58 -04:00
docker_cli_logs_test.go integration-cli: move goroutines info helpers to separate funcs 2016-03-14 15:52:56 -07:00
docker_cli_nat_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_netmode_test.go Allow --hostname with --net=host 2016-03-09 20:40:12 -05:00
docker_cli_network_unix_test.go Vendoring libnetwork v0.7.0-dev.5 2016-03-08 18:47:02 -08:00
docker_cli_oom_killed_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_pause_test.go Windows CI: Deal with failing tests for TP4 2016-01-08 13:49:43 -08:00
docker_cli_port_test.go Expose bridge IPv6 setting to docker network inspect 2016-02-11 22:13:47 +00:00
docker_cli_proxy_test.go Support TLS remote test daemon 2016-02-25 14:12:17 -05:00
docker_cli_ps_test.go Add check about filter name for containers 2016-03-16 03:53:40 +00:00
docker_cli_pull_local_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
docker_cli_pull_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
docker_cli_pull_trusted_test.go Vendor in notary v0.2.0 2016-02-25 13:40:00 -08:00
docker_cli_push_test.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
docker_cli_rename_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_restart_test.go integration-cli: remove not necessary -d again 2016-02-28 13:48:15 +01:00
docker_cli_rm_test.go Merge pull request #19959 from WeiZhang555/fix-cli-print-err 2016-02-03 10:56:19 -08:00
docker_cli_rmi_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_run_test.go Fix flaky test TestRunAttachFailedNoLeak in #21247. 2016-03-17 03:14:59 +00:00
docker_cli_run_unix_test.go speed up DockerSuite.TestRunApparmorProcDirectory 2016-03-12 18:58:29 +08:00
docker_cli_save_load_test.go Refine error message when save non-exist image 2016-03-08 01:45:19 +00:00
docker_cli_save_load_unix_test.go Assert error in body of function inspectField* 2016-01-29 23:39:07 +08:00
docker_cli_search_test.go
docker_cli_sni_test.go Disable flakey TestClientSetsTLSServerName 2016-02-02 19:56:31 -08:00
docker_cli_start_test.go integration-cli: remove not necessary -d again 2016-02-28 13:48:15 +01:00
docker_cli_start_volume_driver_unix_test.go integration-cli: fixups 2016-03-03 11:51:59 +01:00
docker_cli_stats_test.go Bug fix: stats --no-stream always print zero values 2016-03-05 13:22:26 +08:00
docker_cli_tag_test.go Allow uppercase characters in image reference hostname 2016-02-10 14:03:41 -08:00
docker_cli_top_test.go
docker_cli_update_test.go Windows CI: TestUpdateRestartPolicy flakiness 2016-03-02 09:14:16 -08:00
docker_cli_update_unix_test.go Restore container configs when update failed 2016-02-24 14:23:48 +08:00
docker_cli_userns_test.go Run privileged containers when userns are specified 2016-03-14 17:09:25 +02:00
docker_cli_v2_only_test.go Login update and endpoint refactor 2016-03-01 11:52:32 -08:00
docker_cli_version_test.go
docker_cli_volume_test.go Support mount opts for local volume driver 2016-03-03 10:32:25 -05:00
docker_cli_wait_test.go
docker_experimental_network_test.go Experimental it for net vlan drivers 2016-03-11 16:00:27 -08:00
docker_hub_pull_suite_test.go
docker_test_vars.go Windows CI: Initial porting CLI TestExec* 2016-02-01 10:19:21 -08:00
docker_utils.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
events_utils.go Compare event nanoseconds properly to filter since a specific date. 2016-03-08 17:07:58 -05:00
npipe.go Windows CI: Allow npipe protocol for sock requests 2016-03-02 14:22:51 -08:00
npipe_windows.go Windows CI: Allow npipe protocol for sock requests 2016-03-02 14:22:51 -08:00
registry.go distribution: errors: do not access the errors slice if it's empty 2016-03-16 09:00:39 +01:00
registry_mock.go integration-cli: log error when starting registry 2016-01-11 20:16:13 +01:00
requirements.go Merge pull request #21138 from tophj-ibm/add-notary-binary-test-requirement 2016-03-14 13:34:06 +01:00
requirements_unix.go pids limit support 2016-03-08 07:55:01 -08:00
test_vars_exec.go
test_vars_noexec.go
test_vars_noseccomp.go Allow non-seccomp platforms to pass integration-cli tests 2015-12-07 20:14:52 -05:00
test_vars_seccomp.go Allow non-seccomp platforms to pass integration-cli tests 2015-12-07 20:14:52 -05:00
test_vars_unix.go Factorize sleeping containers 2016-01-27 08:48:08 -08:00
test_vars_windows.go Fixing flaky tests on Windows (again) 2016-03-11 14:48:52 -08:00
trust_server.go Add notary binary requirement for tests 2016-03-11 17:36:12 -05:00
utils.go Add a getPrefixAndSlashFromDaemonPlatform … 2016-02-03 15:16:00 +01:00