1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/daemon
Brian Goff e2209185ed Fix log readers can block writes indefinitely
Before this patch, a log reader is able to block all log writes
indefinitely (and other operations) by simply opening the log stream and
not consuming all the messages.

The reason for this is we protect the read stream from corruption by
ensuring there are no new writes while the log stream is consumed (and
caught up with the live entries).

We can get around this issue because log files are append only, so we
can limit reads to only the section of the file that was written to when
the log stream was first requested.

Now logs are only blocked until all files are opened, rather than
streamed to the client.

Signed-off-by: Brian Goff <cpuguy83@gmail.com>
2017-07-05 14:04:52 -04:00
..
caps
cluster LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
config add NamedUlimitOpt implement NamedOption to fix 32528 2017-06-16 10:14:09 +08:00
discovery The returned err should be printed 2017-03-29 09:00:50 +08:00
events support cluster events 2017-05-17 11:46:30 -07:00
exec
graphdriver Merge pull request #33809 from Microsoft/jjh/svmdedicatedscratch 2017-06-28 11:06:46 -07:00
initlayer Partial refactor of UID/GID usage to use a unified struct. 2017-06-07 11:44:33 -04:00
links use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
logger Fix log readers can block writes indefinitely 2017-07-05 14:04:52 -04:00
network
stats Do not treat C.sysconf(C._SC_NPROCESSORS_ONLN) non-zero errno as error 2017-06-01 18:23:49 +03:00
apparmor_default.go apparmor: make pkg/aaparser work on read-only root 2017-05-18 00:05:13 +10:00
apparmor_default_unsupported.go
archive.go Fix copy when used with scratch and images with empty RootFS 2017-06-08 15:07:16 -04:00
archive_tarcopyoptions.go Partial refactor of UID/GID usage to use a unified struct. 2017-06-07 11:44:33 -04:00
archive_tarcopyoptions_unix.go Fix vfs unit test and port VFS to the new IDMappings 2017-06-07 11:44:34 -04:00
archive_tarcopyoptions_windows.go daemon/archive.go: Fix copy routines to preserve UID. 2017-04-12 10:33:19 +00:00
archive_unix.go Remove CopyOnBuild from the daemon. 2017-06-08 15:06:54 -04:00
archive_windows.go Remove CopyOnBuild from the daemon. 2017-06-08 15:06:54 -04:00
attach.go Add a restarting check to ContainerAttach 2017-05-20 11:27:45 +08:00
auth.go
bindmount_solaris.go
bindmount_unix.go
build.go Merge pull request #33241 from Microsoft/jjh/multi-layerstore 2017-06-21 15:45:23 -07:00
cache.go LCOW: Fix ImageCache to address right store 2017-06-20 19:49:53 -07:00
changes.go
checkpoint.go Fix checkpoint ls 2017-05-18 10:57:10 +08:00
cluster.go Fix race condition between swarm and libnetwork 2017-05-10 21:16:52 -07:00
commit.go LCOW: Rework after 33454 merged which refactored daemon/builder interface 2017-06-20 19:50:13 -07:00
configs.go Add config support to executor backend 2017-05-11 10:08:21 -07:00
configs_linux.go Add config support to executor backend 2017-05-11 10:08:21 -07:00
configs_unsupported.go Add Windows configs support 2017-05-16 14:25:32 -07:00
configs_windows.go Add Windows configs support 2017-05-16 14:25:32 -07:00
container.go only Daemon.load needs to call label.ReserveLabel 2017-06-23 07:52:33 -07:00
container_linux.go Added an apparmorEnabled boolean in the Daemon struct to indicate if AppArmor is enabled or not. It is set in NewDaemon using sysInfo information. 2017-01-30 16:23:23 +01:00
container_operations.go Net operations already hold locks to containers 2017-06-23 07:52:35 -07:00
container_operations_solaris.go
container_operations_unix.go Vendor swarmkit 79381d0 2017-06-21 15:32:53 -07:00
container_operations_windows.go Merge pull request #33773 from aaronlehmann/vendor-swarmkit-79381d0 2017-06-22 16:26:34 -07:00
container_windows.go Added an apparmorEnabled boolean in the Daemon struct to indicate if AppArmor is enabled or not. It is set in NewDaemon using sysInfo information. 2017-01-30 16:23:23 +01:00
create.go LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
create_unix.go Remove error return from RootPair 2017-06-07 11:45:33 -04:00
create_windows.go
daemon.go Net operations already hold locks to containers 2017-06-23 07:52:35 -07:00
daemon_experimental.go
daemon_linux.go Skip evaluation of symlinks to data root on IoT Core 2017-06-13 15:02:35 -07:00
daemon_linux_test.go use t.Fatal() to output the err message where the values used for formatting 2017-02-23 10:16:22 +08:00
daemon_solaris.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
daemon_test.go LCOW: Remove CommonContainer - just Container 2017-06-20 08:55:46 -07:00
daemon_unix.go avoid re-reading json files when copying containers 2017-06-23 07:52:34 -07:00
daemon_unix_test.go avoid saving container state to disk before daemon.Register 2017-06-23 07:52:34 -07:00
daemon_unsupported.go
daemon_windows.go LCOW: Don't mount for linux containers either 2017-06-20 19:50:12 -07:00
debugtrap_unix.go daemon: Remove daemon datastructure dump functionality 2017-06-08 14:08:49 -07:00
debugtrap_unsupported.go
debugtrap_windows.go daemon: Remove daemon datastructure dump functionality 2017-06-08 14:08:49 -07:00
delete.go save deep copies of Container in the replica store 2017-06-23 07:52:33 -07:00
delete_test.go LCOW: Remove CommonContainer - just Container 2017-06-20 08:55:46 -07:00
dependency.go Add config support to executor backend 2017-05-11 10:08:21 -07:00
disk_usage.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
errors.go Use distribution reference 2017-02-07 11:08:37 -08:00
events.go support cluster events 2017-05-17 11:46:30 -07:00
events_test.go LCOW: Remove CommonContainer - just Container 2017-06-20 08:55:46 -07:00
exec.go Update ContainerWait API 2017-05-16 15:11:39 -07:00
exec_linux.go daemon: also ensureDefaultApparmorProfile in exec path 2017-03-13 15:20:05 +11:00
exec_solaris.go
exec_windows.go LCOW: pass command arguments without extra quoting 2017-06-24 10:23:17 -07:00
export.go Partial refactor of UID/GID usage to use a unified struct. 2017-06-07 11:44:33 -04:00
getsize_unix.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
health.go Merge pull request #33781 from mlaventure/fix-healhcheck-goroutine-leak 2017-06-26 15:34:43 -07:00
health_test.go Move checkpointing to the Container object 2017-06-23 07:52:32 -07:00
image.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
image_delete.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
image_exporter.go LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
image_history.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
image_inspect.go Set a LastUpdated time in image metadata when an image tag is updated. 2017-06-26 12:16:26 -07:00
image_pull.go LCOW: pull goes to correct stores 2017-06-20 19:49:52 -07:00
image_push.go LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
image_tag.go Set a LastUpdated time in image metadata when an image tag is updated. 2017-06-26 12:16:26 -07:00
images.go LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
import.go LCOW: Plumb through platform on Import 2017-06-20 19:49:54 -07:00
info.go LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
info_unix.go Fix missing "--version" argument 2017-06-11 23:31:47 +02:00
info_unix_test.go Refactor "init" version parsing, and add unit-test 2017-04-08 11:28:37 +02:00
info_windows.go
inspect.go Move platform specific mount data to Container 2017-06-23 07:22:47 -07:00
inspect_solaris.go Move platform specific mount data to Container 2017-06-23 07:22:47 -07:00
inspect_unix.go Move platform specific mount data to Container 2017-06-23 07:22:47 -07:00
inspect_windows.go Move platform specific mount data to Container 2017-06-23 07:22:47 -07:00
keys.go
keys_unsupported.go
kill.go Merge pull request #33335 from cpuguy83/33334_check_unset_sig 2017-06-01 23:10:16 +02:00
links.go
list.go save deep copies of Container in the replica store 2017-06-23 07:52:33 -07:00
list_unix.go stop grabbing container locks during ps 2017-06-23 07:52:31 -07:00
list_windows.go stop grabbing container locks during ps 2017-06-23 07:52:31 -07:00
logdrivers_linux.go
logdrivers_windows.go
logs.go Prevent ContainerLogs from hanging if container doesn't run for long 2017-04-20 12:27:51 +01:00
logs_test.go
metrics.go Add support for metrics plugins 2017-05-12 00:30:09 -04:00
metrics_unix.go Add support for metrics plugins 2017-05-12 00:30:09 -04:00
metrics_unsupported.go Add support for metrics plugins 2017-05-12 00:30:09 -04:00
monitor.go ensure heath monitor status updates are propagated 2017-06-23 07:52:34 -07:00
monitor_linux.go
monitor_solaris.go
monitor_windows.go
mounts.go Fix issue backporting mount spec to pre-1.13 obj 2017-05-11 12:31:53 -04:00
names.go no need to save state to disk here 2017-06-23 07:52:32 -07:00
network.go Integrate local datascope network with swarm 2017-05-17 15:50:28 -07:00
oci_linux.go Remove error return from RootPair 2017-06-07 11:45:33 -04:00
oci_solaris.go Remove error return from RootPair 2017-06-07 11:45:33 -04:00
oci_windows.go LCOW: pass command arguments without extra quoting 2017-06-24 10:23:17 -07:00
pause.go
prune.go LCOW: Fix nits from 33241 2017-06-27 11:59:49 -07:00
reload.go Add daemon option to push foreign layers 2017-05-16 14:36:36 -07:00
reload_test.go Add daemon option to push foreign layers 2017-05-16 14:36:36 -07:00
rename.go save deep copies of Container in the replica store 2017-06-23 07:52:33 -07:00
resize.go
restart.go save deep copies of Container in the replica store 2017-06-23 07:52:33 -07:00
search.go
search_test.go Remove redundant format 2016-12-27 21:46:52 +08:00
seccomp_disabled.go
seccomp_linux.go Update moby to runc and oci 1.0 runtime final rc 2017-05-05 13:45:45 -07:00
seccomp_unsupported.go
secrets.go Add config support to executor backend 2017-05-11 10:08:21 -07:00
secrets_linux.go
secrets_unsupported.go Add Windows secrets support 2017-05-16 11:30:06 -07:00
secrets_windows.go Add Windows secrets support 2017-05-16 11:30:06 -07:00
selinux_linux.go Switch to using opencontainers/selinux for selinux bindings 2017-04-24 21:29:47 +02:00
selinux_unsupported.go
start.go delete unused code (daemon.Start) 2017-06-23 07:52:34 -07:00
start_unix.go save deep copies of Container in the replica store 2017-06-23 07:52:33 -07:00
start_windows.go LCOW: Move daemon stores to per platform 2017-06-20 19:49:52 -07:00
stats.go Send "Name" and "ID" when stating stopped containers 2017-02-09 09:46:59 +08:00
stats_collector.go Extract daemon statsCollector to its own package 2017-01-04 18:18:30 +01:00
stats_unix.go
stats_windows.go
stop.go Update ContainerWait API 2017-05-16 15:11:39 -07:00
top_unix.go Fixing issue of docker top command failure when dealing with -m option 2017-03-10 02:50:21 +00:00
top_unix_test.go Fixing issue of docker top command failure when dealing with -m option 2017-03-10 02:50:21 +00:00
top_windows.go Convert ContainerTopOKResponse from swagger spec. 2017-01-03 11:47:47 -05:00
unpause.go
update.go save deep copies of Container in the replica store 2017-06-23 07:52:33 -07:00
update_linux.go Add --cpus support for docker update 2017-04-06 15:40:12 -07:00
update_solaris.go
update_windows.go
volumes.go Merge pull request #33257 from mtesselH/master 2017-05-29 10:48:07 +01:00
volumes_unit_test.go
volumes_unix.go avoid saving container state to disk before daemon.Register 2017-06-23 07:52:34 -07:00
volumes_unix_test.go LCOW: Remove CommonContainer - just Container 2017-06-20 08:55:46 -07:00
volumes_windows.go Partial refactor of UID/GID usage to use a unified struct. 2017-06-07 11:44:33 -04:00
wait.go Update ContainerWait API 2017-05-16 15:11:39 -07:00
workdir.go Remove error return from RootPair 2017-06-07 11:45:33 -04:00