open-nomad/client
Mahmood Ali 967452a3f0 fifo: Use plain fifo file in Unix
This PR switches to using plain fifo files instead of golang structs
managed by containerd/fifo library.

The library main benefit is management of opening fifo files.  In Linux,
a reader `open()` request would block until a writer opens the file (and
vice-versa).  The library uses goroutines so that it's the first IO
operation that blocks.

This benefit isn't really useful for us: Given that logmon simply
streams output in a separate process, blocking of opening or first read
is effectively the same.

The library additionally makes further complications for managing state
and tracking read/write permission that seems overhead for our use,
compared to using a file directly.

Looking here, I made the following incidental changes:
* document that we do handle if fifo files are already created, as we
rely on that behavior for logmon restarts
* use type system to lock read vs write: currently, fifo library returns
`io.ReadWriteCloser` even if fifo is opened for writing only!
2019-04-01 13:18:03 -04:00
..
allocdir goimports 2019-01-22 15:44:31 -08:00
allochealth client: fix setting alloc unhealthy at deadline 2019-02-19 07:44:14 -08:00
allocrunner Merge pull request #5456 from hashicorp/test-taskenv 2019-03-25 10:41:38 -07:00
allocwatcher goimports 2019-01-22 15:44:31 -08:00
config goimports until make check is happy 2019-01-23 06:27:14 -08:00
consul test: add some extra logging 2019-01-14 09:56:53 -08:00
devicemanager test: fix NewMemDB API change 2019-03-04 13:37:20 -08:00
fingerprint goimports 2019-01-22 15:44:31 -08:00
interfaces Populate alloc stats API with device stats 2018-11-16 10:26:32 -05:00
lib fifo: Use plain fifo file in Unix 2019-04-01 13:18:03 -04:00
logmon fifo: Use plain fifo file in Unix 2019-04-01 13:18:03 -04:00
pluginmanager s/mananger/manager 2019-03-04 12:25:54 -06:00
servers fix test compiling 2018-10-16 16:56:55 -07:00
state test: fix NewMemDB API change 2019-03-04 13:37:20 -08:00
stats Add Client Device Stats structs in api package 2018-11-14 14:41:19 -05:00
structs Bump to dev post-0.9.0-rc1 release 2019-03-22 08:26:30 -07:00
taskenv Fix env templates having interpolated destinations 2019-01-28 10:28:53 -08:00
testutil tests: expect Docker on AppVeyor 2019-02-20 07:41:47 -05:00
vaultclient tests: port TestTaskRunner_BlockForVault from 0.8 2019-02-12 13:46:09 -08:00
acl.go client: hclog-ify most of the client 2018-10-16 16:53:30 -07:00
acl_test.go tests: explicitly cleanup after clients 2018-10-17 10:06:59 -07:00
alloc_endpoint.go feedback and rebasing 2018-02-15 13:59:03 -08:00
alloc_endpoint_test.go run TestAllocations_Stats in CI 2019-03-08 07:57:37 -05:00
alloc_watcher_e2e_test.go tests: enable and fix tests requiring mock driver 2019-01-10 10:10:11 -05:00
client.go client: log when allocs have been processed 2019-02-04 11:07:57 -08:00
client_stats_endpoint.go Server side impl + touch ups 2018-02-15 13:59:02 -08:00
client_stats_endpoint_test.go tests: explicitly cleanup after clients 2018-10-17 10:06:59 -07:00
client_test.go goimports until make check is happy 2019-01-23 06:27:14 -08:00
driver_manager_test.go tests: port some fingerprint tests from 0.8 (#5359) 2019-02-26 10:54:16 -05:00
fingerprint_manager.go goimports until make check is happy 2019-01-23 06:27:14 -08:00
fingerprint_manager_test.go client/drivermananger: add driver manager 2018-12-18 22:55:18 -05:00
fs_endpoint.go client: expose task state to client 2018-10-16 16:56:55 -07:00
fs_endpoint_test.go tests: deflake client TestFS_Logs_TaskPending test 2019-01-18 21:26:48 -05:00
gc.go Plugins use parent loggers 2019-01-11 11:36:37 -08:00
gc_test.go test: copy AR's Alloc before mutating 2018-12-19 15:48:02 -08:00
node_updater.go fix tests that fail as a result of async client startup 2018-12-20 00:53:44 -05:00
rpc.go fix more cases of logging arity errors 2019-01-09 09:22:47 -05:00
rpc_test.go tests: explicitly cleanup after clients 2018-10-17 10:06:59 -07:00
testing.go goimports until make check is happy 2019-01-23 06:27:14 -08:00
util.go example redis job "runs" on arv2! see below 2018-10-16 16:53:29 -07:00
util_test.go Update state with server 2018-10-16 16:53:29 -07:00