David Sheets
58706fd84e
transfused: use memcmp instead of a loop for checking init message
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
9d5309953f
transfused: use read_exactly in subproto reading
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
ac7316427c
transfused: use read_exactly in init thread message reading
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
fdc8afd32d
transfused: factor read_exactly out of read_message
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
8580cfec80
transfused: minor formatting fixup
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
b9ff275a88
transfused: replace brittle init control message writing with write_exactly
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
6cf50dd803
transfused: replace brittle event pid writing with write_exactly
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
78328cf026
transfused: improve write_exactly error handling
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
David Sheets
6b1ef63d79
transfused: improve read_message robustness
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-12-15 11:03:29 +00:00
Riyaz Faizullabhoy
4011d4842a
Use digests instead of tags where possible
...
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com >
2016-12-01 09:39:02 -08:00
Justin Cormack
41caff5065
update c build base image
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-11-18 23:32:47 +00:00
Justin Cormack
2409adfe0a
update C build base images for Musl update
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-10-20 13:23:12 +01:00
Justin Cormack
cfbdc7d067
do not remove build containers
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-10-11 16:12:40 +01:00
Justin Cormack
e1454f0249
add ncurses to C build for menuconfig
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-10-01 18:26:38 +01:00
Justin Cormack
fa19d3259b
Use build container id rather than tagging builds
...
This means that multiple builds will not conflict, so we can
remove the lock from the CI. Also quieter when no errors.
Some still left to do, only done the ones used in build and CI
initially. Some of the others will be cleaned up anyway later.
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-09-29 20:21:17 +01:00
Justin Cormack
0214c41ff3
Use patched aufs-utils so can compile kernel with alpine
...
This is going to be submitted upstream.
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-09-29 16:17:46 +01:00
Rolf Neugebauer
3c30271f3c
transfused: Use Linux coding style (mostly)
...
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com >
2016-09-16 11:02:29 +01:00
Justin Cormack
43ab6520cf
update to latest alpine base images
...
Signed-off-by: Justin Cormack <justin@specialbusservice.com >
2016-09-12 16:02:07 +01:00
Justin Cormack
276157a769
Move all output to the directories it will be in eventually
...
Signed-off-by: Justin Cormack <justin@specialbusservice.com >
2016-09-12 16:02:07 +01:00
Justin Cormack
b75711b4cd
clean up transfused build
...
Signed-off-by: Justin Cormack <justin@specialbusservice.com >
2016-09-12 16:00:53 +01:00
Justin Cormack
d4b5fc07c9
Closer to reproducible builds
...
Make an alpine base image for C and Go builds.
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-09-06 13:18:11 +01:00
David Sheets
b25b891d3b
transfused: copyedit a couple error messages
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-07-22 13:40:52 +01:00
David Sheets
821b329f7b
transfused: add separate FUSE notify channel to avoid deadlock
...
This adds a new notify channel to the transfuse protocol. It is not
optional yet but could be made to be optional. A notify protocol and
notify channel are required because writing FUSE response messages to
the FUSE device has different semantics from writing asynchronous
notifications. In particular, response message writes only error on
malformed messages, do not take locks, and do not block. In contrast,
asynchronous notifications can error under normal conditions
(e.g. invalidating a cache entry that doesn't exist), can take locks
during the write call, and can block.
If responses and notifications occur in the same thread, the file system
can become deadlocked when syscalls lock resources waiting for a
response and a notification is written that blocks attempting to acquire
those same locks. The response that would unlock the contended lock
could be queued behind the notification write but the notification write
can't unblock until the response is written in the future. This patch
enables file systems to avoid that fate by offering a secondary channel
on which to send notifications.
Signed-off-by: David Sheets <dsheets@docker.com >
2016-07-22 13:35:57 +01:00
Justin Cormack
093a81064b
Only run transfused on mac platform
...
See #301
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-07-20 12:11:39 +01:00
Rolf Neugebauer
b499b52d48
init: don't start transfused on Windows
...
Signed-off-by: Rolf Neugebauer <rolf.neugebauer@docker.com >
2016-07-12 14:04:08 +01:00
David Sheets
20fc67092a
transfused: add mknod reg file event actuation message
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-07-11 16:26:00 -07:00
David Sheets
8473eb56f2
Remove /Mac in docker init and transfused init
...
Replace /Mac with /host_docker_app and replace driverDir with just driver.
Signed-off-by: David Sheets <dsheets@docker.com >
2016-07-08 14:36:26 -07:00
David Sheets
c75eb93d1c
transfused: distinguish export requests from mount requests
...
We distinguish export suitability requests from bind mount suitability
requests in the transfuse control protocol. This distinction allows us to
permit both bind mounts of empty directories and export mounts onto empty
directories. Addresses docker/pinata#4213 .
Signed-off-by: David Sheets <dsheets@docker.com >
2016-07-04 18:53:05 -07:00
David Sheets
ede31ffe5b
transfused: use find rather than rm+glob to clean up /tmp
...
This avoids annoying error messages about . and ..
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-09 11:27:59 +01:00
David Sheets
903e6430d9
transfused: replace space indentation in rc script with tabs for consistency
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-08 15:16:43 +01:00
David Sheets
e725aa7d47
transfused: remove anything in /tmp before starting
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-08 15:16:43 +01:00
Ian Campbell
5165a6c795
Add || true to the docker rmi invocations in the clean target
...
Linux xargs calls the command with no arguments if it gets no inputs, which
`docker rmi` complains about. It provides -r / --no-run-if-empty to prevent
this but unfortunately this isn't supported on OSX.
Ignore errors from `docker rmi` so that `make clean` will keep going and clean
up later stuff.
Signed-off-by: Ian Campbell <ian.campbell@docker.com >
2016-06-08 13:59:47 +01:00
David Sheets
06f1a5b81f
transfused: remove rc script cruft
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-07 22:22:23 +01:00
David Sheets
67dd25d1ba
transfused: when starting, wait up to 2s for pidfile to appear
...
pidfile appearance is triggered by start-up mount completion.
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-07 22:21:16 +01:00
David Sheets
b58448fdf5
transfused: update control protocol ( #181 )
...
Add a mount suitability predicate, a pong reply message type, and a log
notice message type. Also, fixes the multi-line mount point printing issue.
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-07 19:13:52 +01:00
David Sheets
0d0413b264
transfused: introduce automatic mount point preparation
...
Mount points are now made dynamically if either the leaf doesn't exist
or the leaf has no children. Any proper prefix of the target mount point may
or may not exist prior to mounting.
Signed-off-by: David Sheets <dsheets@docker.com >
2016-06-03 16:31:49 +01:00
Justin Cormack
e434c70507
Update to Alpine 3.4
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-06-03 12:45:15 +01:00
David Sheets
59310aec70
transfused: add a PING event for vsock RTT measurement
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-04-21 10:22:57 +01:00
David Sheets
1113c21644
transfused: make sure to flush the logging socket when we die
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-04-16 18:54:48 +01:00
David Sheets
fe91be997d
transfused: push log messages over control channel if available
...
Also, remove self-logging and triggers.
Signed-off-by: David Sheets <dsheets@docker.com >
2016-04-15 17:11:38 +01:00
David Sheets
b894b67417
transfused: update the event protocol for streaming vsock
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-04-14 14:57:06 +01:00
David Sheets
cb08ad76d3
transfused: use vsock transport instead of 9p
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-04-12 16:38:06 +01:00
Justin Cormack
0acd6c8196
remove 9pinit package, work now done by appropriate packages or mobyconfig tool
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-04-07 16:40:54 +01:00
Justin Cormack
73a0d72378
move transfused 9p mount into its own init file
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-04-07 10:35:50 +01:00
Justin Cormack
f98fb92480
add --rm for transfused
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-03-29 18:31:55 +01:00
Jeremy Yallop
f23b6d7596
Transfused: free connection objects when read returns 0.
2016-03-29 16:37:51 +01:00
Justin Cormack
dc5258eeed
use build-base not alpine-sdk as smaller and we do not need rest
...
Signed-off-by: Justin Cormack <justin.cormack@docker.com >
2016-03-28 18:18:48 +01:00
David Sheets
a3b644ca5d
transfused: add chmod event syscall
...
Signed-off-by: David Sheets <dsheets@docker.com >
2016-03-20 22:01:22 +00:00
David Sheets
c0b857c7bb
transfused: create threads already detached
...
Signed-off-by: David Sheets <david.sheets@docker.com >
2016-03-20 11:20:00 +00:00
David Sheets
72157cf5ee
transfused: move logging off of the event actuation thread
...
Signed-off-by: David Sheets <david.sheets@docker.com >
2016-03-20 11:08:57 +00:00