Gyu-Ho Lee
3505c254e1
pkg/srv: fix error checks from resolveTCPAddr
...
So that 'terr' can be returned later.
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-05-11 10:53:03 -07:00
Anthony Romano
07ad18178d
pkg/srv: package for SRV utilities
...
Trying to decouple the v2 client from SRV code. Can't move
into discovery/ since that creates a circular dependency. So,
give up and move all the SRV code into a new package.
2017-05-05 09:27:59 -07:00
Gyu-Ho Lee
747993de08
Merge pull request #7829 from gyuho/certs
...
pkg/transport: reload TLS certificates for every client requests
2017-04-27 14:36:53 -07:00
Xiang Li
d818ef2c76
pkg/wait: add comment and make List private
2017-04-27 13:25:02 -07:00
Tony Grosinger
4e21f87e3d
pkg/transport: reload TLS certificates for every client requests
...
This changes the baseConfig used when creating tls Configs to utilize
the GetCertificate and GetClientCertificate functions to always reload
the certificates from disk whenever they are needed.
Always reloading the certificates allows changing the certificates via
an external process without interrupting etcd.
Fixes #7576
Cherry-picked by Gyu-Ho Lee <gyuhox@gmail.com>
Original commit can be found at https://github.com/coreos/etcd/pull/7784
2017-04-27 11:22:03 -07:00
Anthony Romano
6f06e1cb47
testutil: add assert functions
2017-04-22 20:29:58 -07:00
Anthony Romano
91039bef7c
Merge pull request #7799 from heyitsanthony/ctxize-resolve
...
netutil: use "context" and ctx-ize TCP addr resolution
2017-04-21 16:30:32 -07:00
Anthony Romano
14d6ed9e5f
*: clear redundant return statement warnings (S1027)
2017-04-21 14:01:00 -07:00
Anthony Romano
85e87e8f6b
netutil: use "context" and ctx-ize TCP addr resolution
2017-04-21 10:01:53 -07:00
Anthony Romano
8fa4b8da6e
Merge pull request #7767 from heyitsanthony/transport-resolve-dnsnames
...
transport: resolve DNSNames when SAN checking
2017-04-18 17:28:01 -07:00
Anthony Romano
05582ad5b2
transport: resolve DNSNames when SAN checking
...
The current transport client TLS checking will pass an IP address into
VerifyHostnames if there is DNSNames SAN. However, the go runtime will
not resolve the DNS names to match the client IP. Intead, resolve the
names when checking.
2017-04-18 13:21:26 -07:00
Gyu-Ho Lee
5161b74799
pkg/debugutil: add 'mutex' profiler (Go 1.8+)
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-18 10:56:06 -07:00
Gyu-Ho Lee
8aaa1ed911
*: use '*tls.Config.Clone' in Go 1.8
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-17 20:08:27 -07:00
Anthony Romano
1153e1e7d9
Merge pull request #7687 from heyitsanthony/deny-tls-ipsan
...
transport: deny incoming peer certs with wrong IP SAN
2017-04-13 15:03:25 -07:00
Gyu-Ho Lee
8ce579aac9
pkg/transport: add 'IsClosedConnError'
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-13 11:55:18 -07:00
Anthony Romano
33a0496b5e
report: add test for Report interface
2017-04-12 16:41:32 -07:00
Anthony Romano
70a9929b5d
transport: use actual certs for listener tests
2017-04-12 13:41:33 -07:00
Anthony Romano
cad1215b18
*: deny incoming peer certs with wrong IP SAN
2017-04-12 13:41:33 -07:00
Anthony Romano
88d4e7ebeb
netutil: fix unused err staticcheck failure
...
Clears SA4006
2017-04-07 10:52:54 -07:00
Anthony Romano
d42c1f5131
Merge pull request #7646 from andelf/fix-unix-socket-url
...
*: fix a bug in handling unix socket urls
2017-04-05 09:24:38 -07:00
Gyu-Ho Lee
43f795a485
Merge pull request #7659 from gyuho/aaa
...
pkg/transport: remove port in Certificate.IPAddresses
2017-04-05 04:29:44 -07:00
andelf
4f27981c46
*: fix a bug in handling unix socket urls
...
Now use url.Host + url.Path as unix socket path
Fixes #7644
2017-04-05 14:33:13 +08:00
Hitoshi Mitake
c4a45c5713
auth, adt: introduce a new type BytesAffineComparable
...
It will be useful for avoiding a cost of casting from string to
[]byte. The permission checker is the first user of the type.
2017-04-05 13:17:24 +09:00
Gyu-Ho Lee
8a7a548a6d
pkg/transport: remove port in Certificate.IPAddresses
...
etcd passes 'url.URL.Host' to 'SelfCert' which contains
client, peer port. 'net.ParseIP("127.0.0.1:2379")' returns
'nil', and the client on this self-cert will see errors
of '127.0.0.1 because it doesn't contain any IP SANs'
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-04-04 09:44:59 -07:00
Xiang Li
972d8c55ab
Merge pull request #7653 from xiang90/pprof
...
*: add pprof flag to grpc proxy
2017-04-04 09:22:50 -07:00
Xiang
fd5984af56
*: add pprof flag to grpc proxy
2017-04-03 22:07:17 -07:00
Anthony Romano
f67bdc2eed
*: support checking that an interval tree's keys cover an entire interval
2017-04-03 15:38:07 -07:00
Peng Gao
d204b6c3b7
idgen: correct comments for id generator
...
Comments for id generator format is out of
date, correct it.
Fixes #7636
Signed-off-by: Peng Gao <peng.gao.dut@gmail.com>
2017-04-02 20:56:10 +08:00
Anthony Romano
997e83f8ea
testutil: check for grpc resources in AfterTest
...
gRPC leaks only show up at the final leak check, making it difficult to
determine which test is causing the leak.
2017-03-24 16:09:38 -07:00
Anthony Romano
25e3ce1feb
adt: Visit() interval trees in sorted order and terminate early
...
For all intervals [x, y), Visit will visit intervals in ascending order
sorted by x. Also fixes a bug where Visit would not terminate the search
when requested by the visitor function.
2017-03-23 00:02:29 -07:00
Gyu-Ho Lee
27550b229a
Merge pull request #7545 from gyuho/go1.7-go1.8
...
*: use 'io.Seek*' for go1.7+
2017-03-20 16:31:21 -07:00
Gyu-Ho Lee
aca2abd8fe
*: use 'io.Seek*' for go1.7+
...
For https://github.com/coreos/etcd/issues/6174 .
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-20 15:15:24 -07:00
Anthony Romano
ae7b4ee8ed
*: fix gosimple warning for fmt.Sprintf("%s")
2017-03-20 13:26:39 -07:00
Anthony Romano
2f1542c06d
*: use filepath.Join for files
2017-03-16 07:46:06 -07:00
Anthony Romano
eb6a47f87e
testutil: add CheckAfterTest for calling AfterTest without a testing.T
2017-03-10 12:18:24 -08:00
Gyu-Ho Lee
beb58c434c
*: fix minor typos
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-08 16:21:52 -08:00
Gyu-Ho Lee
3d75395875
*: remove never-unused vars, minor lint fix
...
Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
2017-03-06 14:59:12 -08:00
Anthony Romano
f97a077257
netutil: use ipv4 host by default
...
Was non-deterministic.
2017-02-21 20:11:35 -08:00
David Cheney
9b84127739
pkg/transport: remove dependency on pkg/fileutils
...
4a0f922
changed SelfCert to use a helper from pkg/fileutils which
introduced a transitive dependency on coreos/pkg/capnslog. This means
anyone who imports pkg/transport to use TLS with the clientv3 library
has the default stdlib logger hijacked by capnslog.
This PR reverts 4a0f922
. There are no tests because 4a0f922
contained no
test and was not attached to a PR.
Fixes #7350
2017-02-20 12:32:04 +11:00
fanmin shi
07129a6370
*: add and expose StopSignal field in ExpectProcess
...
add and expose StopSignal to ExpectProcess allows user
to define what signal to send on ExpectProcess.close()
coverage testing code sets StopSignal to SIGTERM allowing
the test binary to shutdown gracefully so that it can generate
a coverage report.
2017-02-17 14:47:06 -08:00
fanmin shi
1d521556ae
e2e: modify e2e to run code coverage
2017-02-15 09:51:50 -08:00
Gyu-Ho Lee
950a9da9d9
pkg/report: add min/max latency per second
...
For https://github.com/coreos/dbtester/issues/221 .
2017-02-04 12:46:54 -08:00
Gyu-Ho Lee
01a1dae7ae
pkg/netutil: name GetDefaultInterfaces consistent
2017-02-03 00:37:31 -08:00
sharat
9def4cb9fe
*: Use http.Request.WithContext instead of Cancel
2017-02-02 22:50:07 +05:30
felixoid
0f53ad0b84
netutil: add dualstack to linux_route
...
in v3.1.0 netutil couldn't get default interface for ipv6only hosts
Fixes #7219
2017-01-31 22:19:47 +03:00
Anthony Romano
5aab92414f
Merge pull request #7199 from heyitsanthony/netutil-test-arch
...
pkg/netutil: use native byte ordering
2017-01-23 09:41:20 -08:00
Anthony Romano
1ada4f939f
pkg/netutil: use native byte ordering for route information
...
Fixes #7199
2017-01-20 10:44:05 -08:00
Anthony Romano
e446c2c2c7
pkg/cpuutil: add cpuutil
...
A package for unsafe cpu-ish things.
2017-01-20 01:47:56 -08:00
Vimal Kumar
e4b8c874d2
pkg/flags: fixed prefix checking of the env variables
2017-01-20 13:13:40 +05:30
Gyu-Ho Lee
307e14028c
Merge pull request #7175 from gyuho/report
...
pkg/report: add nil checking for getTimeSeries
2017-01-17 13:22:20 -08:00
Gyu-Ho Lee
69606bb95f
pkg/report: add nil checking for getTimeSeries
2017-01-17 12:51:47 -08:00
Laurie Clark-Michalek
eba41cd7b3
pkg/transport: Obey the usual laws of ssl when using a private PKI
2017-01-15 21:27:53 +00:00
Gyu-Ho Lee
74bad576ed
pkg/report: add 'Stats' to expose report raw data
2017-01-13 10:26:00 -08:00
Anthony Romano
da8fd18d8e
transport: warn on user-provided CA
...
ServerName is ignored for a user-provided CA for backwards compatibility. This
breaks PKI, so warn it is deprecated.
2017-01-12 09:10:05 -08:00
Gyu-Ho Lee
e44d3abc77
pkg/report: support 99.9-percentile, change column name
2017-01-10 18:22:47 -08:00
Anthony Romano
f99c76cb47
Merge pull request #7113 from heyitsanthony/testutil-bufsize
...
testutil: increase size of buffer for stack dump
2017-01-06 18:16:42 -08:00
Anthony Romano
6ab8dcb679
testutil: increase size of buffer for stack dump
...
Too many goroutines to fit all stack traces in 8kb.
2017-01-06 17:14:42 -08:00
Anthony Romano
cf382dbe60
expect: EXPECT_DEBUG environment variable
...
Dump process output to stdout when EXPECT_DEBUG != "".
2017-01-06 11:09:06 -08:00
fanmin shi
74e7614759
testutil: whitelist thread created by go cover
2016-12-29 17:19:27 -08:00
Anthony Romano
13b05aeff8
netutil: ctx-ize URLStringsEqual
...
Handles the case where the DNS entry will only be set up after etcd
starts.
2016-12-14 15:46:30 -08:00
Xiang Li
2f96a68a20
etcdserver: do not send v2 sync if ttl keys do not exist
2016-12-07 14:48:15 -08:00
fanmin shi
e7f4010cca
lease: Use monotonic time in lease
...
lease uses monotimer to calculate its expiration. In this way, changing system time won't affect in lease expiration.
FIX #6700
2016-11-29 12:31:00 -08:00
Gyu-Ho Lee
097cdbd0e4
pkg/netutil: get default interface for tc commands
...
Fix https://github.com/coreos/etcd/issues/6841 .
2016-11-17 22:49:17 -08:00
Xiang Li
9f0ee53e86
etcd-runner: move string generation to pkg/stringutil
2016-10-31 12:20:02 -07:00
Gyu-Ho Lee
a00ed609c3
pkg/flags: export 'FlagToEnv' for e2e tests
2016-10-14 11:15:28 -07:00
Xiang Li
e2bd6f2213
Merge pull request #6601 from nekto0n/interval_tree_fast_stab
...
adt: fast path Stab in empty interval tree
2016-10-07 09:13:23 -07:00
Anthony Romano
3d28faa3eb
pkg/report, tools/benchmark: refactor report out of tools/benchmark
...
Only tracks time series when requested. Can configure output precision.
2016-10-06 16:18:47 -07:00
Nikita Vetoshkin
eae70c9379
adt: fast path Stab in empty interval tree
2016-10-06 22:41:33 +05:00
Xiang Li
a781f4ebda
Merge pull request #6551 from xiang90/fix_log_repo
...
pkg: use etcd as logging repo
2016-09-29 02:46:57 -05:00
Xiang Li
9473e9c30e
pkg: use etcd as logging repo
2016-09-29 15:29:38 +08:00
Gyu-Ho Lee
d0c29cc610
pkg/ioutil: configure pageOffset in NewPageWriter
2016-09-28 09:45:54 -07:00
Gyu-Ho Lee
629d9e7dab
Revert "pkg/transport: update tls.Config copy method"
2016-09-19 15:07:12 +09:00
Gyu-Ho Lee
8c9a88c7d4
pkg/transport: update tls.Config copy method
...
For Go 1.7
2016-09-18 22:50:45 +09:00
Xiang Li
7a48ca4cea
embed: fix go 1.7 http issue
...
go 1.7 introduces HTTP2 compability issue. Now we
need to explicitly enable HTTP2 when TLS is set.
2016-09-18 18:38:55 +08:00
Anthony Romano
c449da6ff9
fileutil: windows OpenDir
...
Windows needs to open a directory with write access to fsync but the go
runtime won't open directories that way.
2016-09-08 00:09:16 -07:00
Vimal Kumar
5ea6990a73
corrected the package name in logger
2016-09-07 11:52:01 +05:30
Anthony Romano
2943bf9086
ioutil: add page buffered writer
...
A buffered writer that only writes full pages or when explicitly flushed.
2016-08-30 15:49:07 -07:00
Anthony Romano
58a36cb651
fileutil: add ZeroToEnd for zeroing files
2016-08-25 14:24:46 -07:00
Anthony Romano
aa89bc35fd
Merge pull request #6242 from heyitsanthony/rwdial-timeout
...
pkg/transport: bump wait time in TestReadWriteTimeoutDialer for write deadline
2016-08-22 16:13:50 -07:00
Anthony Romano
3b92384394
pkg/transport: bump wait time in TestReadWriteTimeoutDialer for write deadline
...
Was able to get 2s wait times with 500 concurrent requests on a fast machine;
a slower machine could possibly see similar delays with a single connection.
Fixes #6220
2016-08-22 15:30:44 -07:00
Xiang Li
83de13e4a8
etcdserver: support apply wait
2016-08-19 16:18:35 -07:00
Xiang Li
8db4f5b8e1
pkg/wait: change wait time to use logical clock
2016-08-19 15:10:37 -07:00
Anthony Romano
f9d122066e
pkg/wait: don't expect time.Now() to be strict increasing in WaitTime tests
2016-08-17 11:53:34 -07:00
Anthony Romano
961b03420e
Merge pull request #6185 from heyitsanthony/wait-time-collision
...
wait: make WaitTime robust against deadline collisions
2016-08-15 15:15:29 -07:00
Anthony Romano
16b2d9ca5e
Merge pull request #6170 from heyitsanthony/default-advertise-ip
...
use default ip for advertise URL
2016-08-15 15:12:25 -07:00
Anthony Romano
c3f069c9fc
wait: make WaitTime robust against deadline collisions
2016-08-15 14:38:41 -07:00
Anthony Romano
d23392ed8e
netutil: GetDefaultHost for getting the default IP of the host machine
2016-08-15 11:12:26 -07:00
Gyu-Ho Lee
ae4b4109b2
pkg/httputil: simplify RequestCanceler args
2016-08-14 14:35:50 -07:00
Gyu-Ho Lee
c38f0290a7
pkg/transport: fix minor typo
2016-08-04 16:00:18 -07:00
Anthony Romano
cd781bf30c
transport: add ServerName to TLSConfig and add ValidateSecureEndpoints
...
ServerName prevents accepting forged SRV records with cross-domain
credentials. ValidateSecureEndpoints prevents downgrade attacks from SRV
records.
2016-08-03 22:28:03 -07:00
Gyu-Ho Lee
c8cc87c3f5
pkg/transport: update scheme to unix copying URL
2016-08-03 10:35:28 -07:00
Anthony Romano
99e0655c2f
transport: wrap timeout listener with tls listener
...
Otherwise the listener will return timeoutConn's, causing a type
assertion to tls.Conn in net.http to fail so http.Request.TLS is never set.
2016-07-19 16:47:14 -07:00
Anthony Romano
c920ce0453
fileutil: rework purge tests so they don't poll
...
Fixes #5966
2016-07-18 14:19:09 -07:00
Anthony Romano
984badeb03
testutil, clientv3: wait for panics in txn tests to complete
...
Fixes #5901
2016-07-18 09:37:33 -07:00
Xiang Li
3839a55910
*: fix issue found in fast lease renew
2016-07-15 15:07:15 -07:00
Hitoshi Mitake
abb20ec51f
etcdserver, pkg: skip needless log entry applying
...
This commit lets etcdserver skip needless log entry applying. If the
result of log applying isn't required by the node (client that issued
the request isn't talking with the node) and the operation has no side
effects, applying can be skipped.
It would contribute to reduce disk I/O on followers and be useful for
a cluster that processes much serializable get.
2016-07-08 15:16:45 +09:00
Anthony Romano
54d56e2531
pkg/types: accept unix and unixs schemes
2016-06-24 21:04:39 -07:00
Anthony Romano
fc1a226d15
pkg/transport: unix domain socket listener and transport
2016-06-24 21:04:31 -07:00
Gyu-Ho Lee
4a0f922a6c
pkg/transport: use TouchDirAll
2016-06-22 15:57:55 -07:00
Gyu-Ho Lee
187faba3e0
pkg/fileutil: fix TouchDirAll, add CreateDirAll
...
os.MkdirAll never returns os.ErrExist.
And add another function to ensure deepest
directory is empty.
2016-06-22 15:54:17 -07:00
Gyu-Ho Lee
6557ef7cd8
*: copy all exported members in tls.Config
...
Without this, go vet complains
assignment copies lock value to n: crypto/tls.Config contains sync.Once
contains sync.Mutex
2016-06-22 12:04:08 -07:00
James Shubin
6480066054
*: misc typos and go vet fixes
2016-06-22 10:32:13 -07:00
Xiang Li
8ea6be38ba
*: remove old flag support
...
These legacy flags support are here only because we do not want
CoreOS updates to break people.
Now people will be aware of that they switch to etcd3. Do not need
to support 0.x flags any more.
2016-06-17 14:51:45 -07:00
Gyu-Ho Lee
47d5257622
pkg/fileutil: expose PrivateFileMode/DirMode
2016-06-10 15:22:14 -07:00
Jordan Liggitt
4f7622fb9a
fileutil: avoid double preallocation
2016-06-10 00:27:59 -04:00
Anthony Romano
4984d82d27
Merge pull request #5570 from heyitsanthony/rafthttp-snapshot-tests
...
rafthttp: snapshot testing
2016-06-06 16:02:22 -07:00
Anthony Romano
3aadb25c31
pkg/ioutil: exact readcloser
...
NewExactReadCloser wraps a ReadCloser so it returns errors if exact number
of bytes are not read.
2016-06-06 11:38:10 -07:00
Anthony Romano
54aac4ab7e
pkg/fileutil: fall back to truncate() if fallocate is interrupted
...
Fixes #5558
2016-06-06 09:52:34 -07:00
Xiang Li
8b28c647ea
transport: require tls12
2016-06-02 09:38:56 -07:00
Anthony Romano
fc7da09d67
*: add missing godoc package descriptions
...
Fixes #4074
2016-05-27 15:15:26 -07:00
James Shubin
d41ce0a97c
pkg/types: Add tests for NewURLsMapFromStringMap
2016-05-14 10:48:56 -04:00
James Shubin
17e23769d9
pkg/types: gofmt existing code
2016-05-14 09:33:58 -04:00
James Shubin
029fe6bf47
pkg/types: Build a urls map from a string map
...
This adds a simple transformation function which is helpful when
manipulating the different etcd internal data representations.
2016-05-14 09:33:58 -04:00
Gyu-Ho Lee
8b77de4e99
pkg: update LICENSE header
2016-05-12 20:48:53 -07:00
Gyu-Ho Lee
4ab1500a6d
pkg/fileutil: wait up to 300ms for purge test
...
Fix https://github.com/coreos/etcd/issues/5231 .
The issue shows that slow CI can take more than 200ms
for purging. This increase the loop iteration to wait
up to 300ms in case the disk is being slow.
2016-04-29 15:24:44 -07:00
Ajit Yagaty
8b6de5f85d
fileutil: Sync on HFS/OSX needs to be handled differently.
...
A call file.Sync on OSX doesn't guarantee actual persistence on
physical drive media as the data can be cached in physical drive's
buffers. Hence calls to file.Sync need to be replaced with
fcntl(F_FULLFSYNC).
2016-04-18 21:49:04 -07:00
Anthony Romano
d4ff9364d4
Merge pull request #4861 from heyitsanthony/nfs-lock
...
pkg/fileutil: fix linux file locks over NFS
2016-04-16 08:59:10 -07:00
Anthony Romano
9bfa0172f5
test, clientv3: run examples as integration tests
2016-04-15 11:51:30 -07:00
Gyu-Ho Lee
ae27b991b1
*: add more examples to clientv3, pkg/adt
2016-04-14 23:46:50 -07:00
Anthony Romano
fcb5ba98d0
pkg/expect: support sending Signals to expect process
2016-04-13 09:11:57 -07:00
Gyu-Ho Lee
4041bbe571
Merge pull request #5008 from gyuho/gosimple_unused
...
clean up with gosimple and unused
2016-04-07 23:31:21 -07:00
Gyu-Ho Lee
fb85da92e8
*: fix based on gosimple and unused
2016-04-07 23:16:37 -07:00
Xiang Li
9c7fb9c360
*: fix misspell
2016-04-07 21:57:06 -07:00
Xiang Li
bf2289ae00
etcdserver: move membership related code to membership pkg
2016-04-07 14:21:37 -07:00
Gyu-Ho Lee
6e6d64fb9b
*: clean up unused vars, functions
...
With help from https://github.com/dominikh/go-unused .
IsNetTimeoutError seems useful, so moved to pkg/netutil.
2016-04-06 21:33:55 -07:00
Gyu-Ho Lee
679e5e379b
pkg/expect: ExpectFunc, LineCount
...
ExpectFunc to make expect more extensible. LineCount to be
able to check 'no output' command.
2016-04-06 15:56:00 -07:00
Anthony Romano
dc420d660e
e2e, pkg/expect: distinguish between Stop and Close
...
Fixes #4928
2016-04-03 11:45:02 -07:00
Gyu-Ho Lee
f4eaa3f8fb
pkg/expect: replace SendLine with Send method
2016-04-03 10:57:35 -07:00
Gyu-Ho Lee
c09f23c46d
*: clean up bool comparison
2016-04-02 18:27:54 -07:00
Gyu-Ho Lee
b0cc0e443c
*: clean up if, bool comparison
2016-04-02 12:55:11 -07:00
Gyu-Ho Lee
d898c68f2c
pkg/expect: add SendLine for interactive mode
2016-03-31 15:34:30 -07:00
Xiang Li
eb3919e8cf
*: move baisc tls util funcs to tlsutil pkg
2016-03-31 09:45:45 -07:00
Anthony Romano
5707f6b997
pkg/expect: add expect package
2016-03-30 15:14:24 -07:00
Anthony Romano
b539d3a411
test: check formatting for all relevant packages in pkg/
2016-03-30 15:14:24 -07:00
Gyu-Ho Lee
a42d1dc1fe
*: drain http.Response.Body before closing
2016-03-30 09:35:47 -07:00
Gyu-Ho Lee
3f1a1c3192
pkg/fileutil: lock file on Windows
2016-03-27 00:35:44 -07:00
Anthony Romano
877030ea9d
pkg/fileutil: fix linux file locks over NFS
...
Fixes #4853
2016-03-25 16:28:29 -07:00
Xiang Li
a120ca16c0
etcdctlv3: accept evn for global configuration flags
2016-03-25 14:23:32 -07:00
Xiang Li
900a61b023
*: http and https on the same port
2016-03-23 10:28:38 -07:00
Anthony Romano
bd832e5b0a
*: migrate Godeps to vendor/
2016-03-22 17:10:28 -07:00
Nick Owens
d80a546ed4
pkg/transport: use ProxyFromEnvironment when constructing a transport
...
this allows use of HTTP_PROXY/HTTPS_PROXY for etcdctl.
2016-03-21 21:02:42 -07:00
Anthony Romano
adebd91114
Merge pull request #4785 from heyitsanthony/gce-fallocate
...
wal: extend WAL file to segment size on fallocate
2016-03-21 13:08:53 -07:00
Anthony Romano
a69c709839
pkg/transport: generate certs
2016-03-21 11:38:23 -07:00
Anthony Romano
aafe717f2f
fileutil: support file extending preallocate
2016-03-21 09:42:30 -07:00
Gyu-Ho Lee
dae7e009b0
*: godoc clean up
2016-03-19 14:19:23 -07:00
Gyu-Ho Lee
5bba773199
pkg/testutil: drop go1.4 goroutine leak exception
2016-03-18 18:45:47 -07:00
Gyu-Ho Lee
0a82c06a2c
pkg/types: drop go1.4 tests
2016-03-18 18:45:29 -07:00
Gyu-Ho Lee
33e22fa8d7
pkg/httputil: drop go1.4 tests
2016-03-18 18:45:12 -07:00
Anthony Romano
7397e14c0a
fileutil, wal: refactor file locking
...
File lock interface was more verbose than it needed to be while
simultaneously making it difficult to support systems (e.g., Windows)
that only permit locked writes on a single fd holding the lock.
2016-03-16 15:02:15 -07:00
Hongchao Deng
dcaf5ef586
move store recorder to 'mock/mockstore'
2016-03-15 15:41:07 -07:00
Xiang Li
e59efe45a1
wal: support fadatasync on linux
2016-03-13 17:22:53 -07:00
Gyu-Ho Lee
22a8bbd3b1
pkg/fileutil: clean up interface, comments
2016-03-09 09:19:56 -08:00
Gyu-Ho Lee
4422db389a
pkg/netutil: add linux netem functions
...
This is useful for simulating bad networks by introducing
latencies to wide area networks.
Reference:
http://www.linuxfoundation.org/collaborate/workgroups/networking/netem
2016-03-03 10:14:28 -08:00
Xiang Li
f0dbd0b856
Merge pull request #4646 from xiang90/starvation
...
etcdserver: detect raft stravation
2016-02-29 19:58:17 -08:00
Anthony Romano
1d6ebdd35c
pkg/timeutil: removal
...
Overkill of a package for three lines of code.
2016-02-29 17:07:24 -08:00
Xiang Li
d6520303c6
etcdserver: detect raft starvation caused by contention
2016-02-29 17:06:57 -08:00
Anthony Romano
c0b06a7a32
pkg/adt: interval tree
2016-02-29 15:20:30 -08:00
Anthony Romano
c5b51946eb
*: exported godoc fixups
2016-02-21 20:36:44 -08:00
Xiang Li
870e4c2681
*: fix schedule.Wait race
2016-02-11 15:21:33 -08:00
Xiang Li
d314345e6d
*: add a scheduler and use it to schedule compaction
2016-02-10 14:27:08 -08:00
Xiang Li
e44e753e66
pkg/idutil: reduce conflict rate from 1% to 0.005%
...
Perviously, we only use 8bits from member identification
in id generation. The conflict rate is A(256,3)/256^3, which
is around 1%. Now we use 16bites to reduce the rate to 0.005%.
We can attach the full member id into id generation if needed...
2016-02-04 13:25:18 -08:00
Xiang Li
d43bd48977
pkg/wait: make id checking stricter
...
Do not allow register with same id.
2016-02-04 09:59:49 -08:00
Anthony Romano
72b31d6fdc
pkg/testutil: more aggressive goroutine stack trace coalescing
...
Strips out the pointer arguments in the header of the stack trace so
that more stack traces match each other.
2016-02-02 21:20:24 -08:00
Anthony Romano
20461ab11a
*: fix many typos
2016-01-31 21:42:39 -08:00
Gyu-Ho Lee
71c2a9bb3c
*: fix minor typos, comments
2016-01-30 18:15:56 -08:00
Xiang Li
12556af26b
Merge pull request #4343 from shawnps/patch-6
...
testutil: fix typo in comment
2016-01-28 23:03:29 -08:00
Shawn Smith
0cbd5bfe7d
testutil: fix typo in comment
2016-01-29 16:02:07 +09:00
Shawn Smith
4e649970df
logutil: fix typo in comment
2016-01-29 16:01:19 +09:00
Xiang Li
b1a45fe1c8
Merge pull request #4274 from xiang90/leasehttp
...
leasehttp: move lease/http.go to its own pkg
2016-01-25 10:25:25 +08:00
Xiang Li
72ffa74476
pkg/transport: update timeout transport to reuse conn when timeout is not set
2016-01-25 06:55:54 +08:00
Gyu-Ho Lee
96d2ee20e3
*: detect leaky goroutines, fix leaks
...
gexpect.Interact leaks. This adds ReadLine method to wait for the leaky
goroutine to accept an EOF.
Fixes https://github.com/coreos/etcd/issues/4258 .
Reference: https://github.com/coreos/etcd/pull/4261#issuecomment-174198945 .
2016-01-23 13:52:41 -08:00
Gyu-Ho Lee
0d646a25ee
pkg/testutil: fix unreachable go tool vet complain
2016-01-22 15:16:35 -08:00
Gyu-Ho Lee
497bbd3010
*: FatalStack to stacktrace tests after timeout
...
Related to https://github.com/coreos/etcd/issues/4065 .
2016-01-14 10:20:14 -08:00
Gyu-Ho Lee
b6077f9d57
*: fix minor typos
2016-01-14 01:28:29 -08:00
Anthony Romano
54c905f87f
testutil: fix data race in RecorderBuffered
...
Was accessing a shared data structure instead of the private copy.
Fixes #4198
2016-01-12 21:08:51 -08:00
Anthony Romano
811fbc5672
etcdmain: support keep alive listeners on limit listener connections
...
Fixes #4171
2016-01-08 10:11:31 -08:00
Gyu-Ho Lee
f76166a041
*: fix minor typos
2016-01-08 00:21:19 -08:00
Xiang Li
1f97f2dc36
etcdmain: tls listener MUST be at the outer layer of all listeners
...
go HTTP library uses type assertion to determine if a connection
is a TLS connection. If we wrapper TLS Listener with any customized
Listener that can create customized Conn, HTTPs will be broken.
This commit fixes the issue.
2016-01-07 10:26:49 -08:00
Anthony Romano
f2df87f3e4
pkg/transport: support listeners on unix sockets
...
Given unix://<socketname>, NewListener will listen on unix socket <socketname>.
This is useful when binding to tcp ports is undesirable (e.g., testing).
2016-01-06 12:09:05 -08:00
Anthony Romano
384cc76299
pkg/testutil: make Recorder an interface
...
Provides two implementations of Recorder-- one that is non-blocking
like the original version and one that provides a blocking channel
to avoid busy waiting or racing in tests when no other synchronization
is available.
2016-01-05 09:39:18 -08:00
Anthony Romano
e1bf726bc1
*: split out etcdserver's test mockup objects to live in interfaces' packages
2016-01-05 09:39:13 -08:00
Gyu-Ho Lee
64032541c3
pkg/logutil: round off start time, add merge_logger_test.go
2015-12-29 20:00:46 -08:00
Xiang Li
150e646b05
etcdserver: always check if the data dir is writable before starting etcd
2015-12-29 11:29:01 -08:00
Gyu-Ho Lee
8d368c4dba
pkg/fileutil: fix error var shadow
...
Go tip complains about error variable shadowing at
https://travis-ci.org/coreos/etcd/jobs/98636879#L291-L292 .
2015-12-23 23:56:26 -08:00
Xiang Li
22b3b3e07a
Merge pull request #4038 from AkihiroSuda/etcd-4007
...
pkg/fileutil: skip TestIsDirWriteable when running as root
2015-12-23 22:23:57 -08:00
Akihiro Suda
058f1449d6
pkg/fileutil: skip TestIsDirWriteable when running as root
2015-12-24 14:52:40 +09:00
Jonathan Boulle
50efd01e34
pkg: fix tiny docstring typo in ioutil
2015-12-22 16:37:22 +01:00
Xiang Li
4bcd7587e2
etcdmain: fix incomplete proxy config file
...
etcd might generate incomplete proxy config file after a power failure.
It is because we use ioutil.WriteFile. And iotuile.WriteFile does
not call Sync before closing the file.
2015-12-21 16:15:00 -08:00
Xiang Li
96731f4525
Merge pull request #3991 from xiang90/fix_lock
...
pkg/fileutil: make TestLockAndUnlock less flaky on CI
2015-12-14 11:58:14 -08:00
Xiang Li
be3e87b238
pkg/fileutil: make TestLockAndUnlock less flaky on CI
...
CI is slow sometime. To make the test less flaky, we increases the
timeout. This does not affect the correctness, but the test might
take longer to finish or to fail.
2015-12-14 11:38:07 -08:00
Gyu-Ho Lee
4e06510280
pkg/fileutil: fix shadowed variables
2015-12-12 09:38:26 -08:00
Xiang Li
95c29838e3
rafthttp: move ReadCloser to ioutil
2015-12-11 09:37:41 -08:00
Xiang Li
e93c07ba91
pkg/fileutil: make purge test more reliable
2015-12-09 10:34:38 -08:00
Xiang Li
77069ca16b
pkg/fileutil: make purgeTest more robust
...
1. Add a few comments to the test.
2. Provide a more robust way to check the purging
result. Tolerate slow io operations.
2015-12-02 15:12:42 -08:00
Gyu-Ho Lee
81229dbea9
*: add missing package descriptions
...
This adds and updates package descriptions in etcd projects.
And also deletes some duplicate LICENSE statements.
2015-11-17 20:54:10 -08:00
Yicheng Qin
7ff8ec81ee
Merge pull request #3771 from yichengq/cors-auth
...
pkg/cors: add authorization into Access-Control-Allow-Headers
2015-11-10 08:05:53 -08:00
Yicheng Qin
33fe6f41fb
Merge pull request #3808 from yichengq/fix-wait-test
...
pkg/wait: extend wait timeout in TestWaitTime
2015-11-04 11:39:24 -08:00
Yicheng Qin
3b8349c06e
pkg/wait: extend wait timeout in TestWaitTime
...
Fix this error happening on travis:
```
--- FAIL: TestWaitTime-2 (0.01s)
wait_time_test.go:46: cannot receive from ch as expected
```
2015-11-04 11:18:17 -08:00
Yicheng Qin
6040d57106
rafthttp: use MergeLogger to merge message-drop log
...
rafthttp logs repeated messages when amounts of message-drop logs
happen, and it becomes log spamming.
Use MergeLogger to merge log lines in this case.
2015-11-04 07:26:58 -08:00
Yicheng Qin
d6b4c7b67c
pkg/cors: add authorization into Access-Control-Allow-Headers
...
This helps browser to send auth-related request to etcd server when
cors flag is set.
2015-10-28 13:58:04 -07:00
Yicheng Qin
d3ebecdddd
pkg/transport: extend wait timeout for write
...
This helps the test to pass safely in semaphore CI.
Based on my manual testing, it may take at most 500ms to return
error in semaphore CI, so I set 1s as a safe value.
2015-10-21 18:27:21 -07:00
Xiang Li
3c1ecf70cf
pkg/transport: longer timeout for slow CI
2015-10-18 16:32:18 -07:00
Yicheng Qin
9673eb625a
pkg/transport: pass dial timeout to NewTransport
...
So we could set dial timeout for new transport, which makes it
customizable according to max RTT.
2015-10-11 10:09:25 -07:00
Yicheng Qin
e117f36e48
pkg/types: fix unwanted unescape in NewURLsMap
...
We use url.ParseQuery to parse names-to-urls string, but it has side
effect that unescape the string. If the initial-cluster string has ipv6
which contains `%25`, it will unescape it to `%` and make further url
parse failed.
Fix it by modifiying the parse process.
Go1.4 doesn't support literal IPv6 address w/ zone in
URI(https://github.com/golang/go/issues/6530 ), so we only enable tests
in Go1.5+.
2015-10-05 14:54:17 -07:00
Yicheng Qin
de1a16e0f1
pkg/transport: fix a data race in TestReadWriteTimeoutDialer
...
Accessing test.T async will cause data race.
Change to use select to coordinate the access of test.T.
2015-09-30 17:29:24 -07:00
Xiang Li
6c05a01ec6
Merge pull request #3604 from gyuho/replace_netutil_BasicAuth
...
etcdhttp/auth: BasicAuth method in standard pkg
2015-09-28 15:55:46 -07:00
Gyu-Ho Lee
e16f81838b
etcdhttp/auth: BasicAuth method in standard pkg
...
I created a new PR from https://github.com/coreos/etcd/pull/3598 .
This is for `TODO: use the standard lib BasicAuth method when we move to
Go 1.4.` [1]. `BasicAuth` method got into Go standard package a year ago. [2]
---
1. https://github.com/coreos/etcd/blob/master/pkg/netutil/netutil.go#L126-L138
2. https://codereview.appspot.com/76540043/
2015-09-28 14:02:55 -07:00
Xiang Li
5d033c22af
pkg/transport: fix a data race in TestWriteReadTimeoutListener
2015-09-25 10:02:37 -07:00
Jonathan Boulle
7848ac3979
*: add missing license headers
2015-09-15 14:09:01 -07:00
Yicheng Qin
1f0fb3d9aa
etcdserver: forbid to unset v3 demo once used
...
After enabling v3 demo, it may change the underlying data organization
for v3 store. So we forbid to unset --experimental-v3demo once it has
been used.
2015-09-14 21:27:11 -07:00
Yicheng Qin
df83af944b
Merge pull request #3384 from yichengq/fix-shadow
...
test: use go vet shadow feature instead of go-nyet
2015-08-27 14:27:57 -07:00
Yicheng Qin
92cd24d5bd
*: fix govet shadow check failure
2015-08-27 14:15:30 -07:00
Xiang Li
b2d33e6dcb
Merge pull request #3382 from xiang90/env
...
pkg/flags: print out evn usage information
2015-08-27 13:36:55 -07:00
Matt Keller
327632014e
cors: Removed new(?) header from test, resolving failure
...
"X-Content-Type-Options" was being autoadded, but none of the
test maps took it into account. I saw that "Content-Type" was
also being deleted, so I figured that was the best solution
for this as well.
2015-08-27 15:23:14 -04:00
Xiang Li
c8f5e03b75
pkg/flags: print out evn usage information
2015-08-27 12:08:31 -07:00
Yicheng Qin
57e88465bf
pkg/transport: print ClientCertAuth in TLSInfo.String()
...
It is good to print it in debug output:
```
21:56:12 etcd1 | 2015-08-25 21:56:12.162406 I | etcdmain: peerTLS: cert
= certs/etcd1.pem, key = certs/etcd1-key.pem, ca = , trusted-ca =
certs/ca.pem, client-cert-auth = true
```
2015-08-25 21:53:52 -07:00
Yicheng Qin
6250fed8a8
Merge pull request #3096 from philips/tls-info-debug
...
pkg/transport: include debug output for trusted-ca
2015-08-25 20:08:19 -07:00
Yicheng Qin
fc95ec0cc6
rafthttp: always cancel in-flight request when stop streamReader
...
This problem is totally fixed at 1.5.
go1.5 adds a Request.Cancel channel, which allows for "race free"
cancellation
(8b4278ffb7
).
Our implementation relies on it to always cancel in-flight request.
2015-08-25 08:54:13 -07:00
Cong Ding
c09b667d57
*: fix go vet reported issues
2015-08-22 12:19:02 -05:00
Xiang Li
044b23c3ca
Merge pull request #3356 from xiang90/travis
...
*: test gofmt with -s and fix reported issues
2015-08-21 18:59:51 -07:00
Xiang Li
6b23a8131f
*: test gofmt with -s and fix reported issues
2015-08-21 18:52:16 -07:00
Yicheng Qin
3c1e6b54b3
pkg/netutil: stop resolving in place
...
It helps to copy out a and b, and not modify the original a and b.
2015-08-21 12:09:17 -07:00
Yicheng Qin
1c334979cd
pkg/netutil: not introduce empty url when converting
...
It should not make slices with length and append elements at the same
time.
2015-08-21 12:08:17 -07:00
Yicheng Qin
7b871aab41
pkg/netutil: not export resolve and urlsEqual functions
...
They are only used in this package, so there is no need to public them.
2015-08-21 11:58:37 -07:00
Yicheng Qin
b1192e5c48
pkg/netutil: fix false negative comparison
...
Sort the resolved URLs before DeepEqual, so it will not compare URLs
that may be out of order due to resolution.
2015-08-21 10:15:08 -07:00
Yicheng Qin
8ea3d157c5
Revert "Revert "Treat URLs have same IP address as same""
...
This reverts commit 3153e635d5
.
Conflicts:
etcdserver/config.go
2015-08-21 09:41:13 -07:00
Xiang Li
ff37cc455c
pkg/transport: remove home-grown limitedListener
2015-08-20 20:03:27 -07:00
Xiang Li
3ca5482251
pkg/fileutil: treat not support error as nil error in preallocate
2015-08-20 11:15:02 -07:00
Yicheng Qin
4778d780a8
pkg/pathutil: change copyright for path.go
...
The file only contains the function that is borrowed from std http lib,
so we use their copyright.
2015-08-18 11:48:22 -07:00
Yicheng Qin
b5ec7f543a
client: use canonical url path in request
...
The main change is that it keeps the trailing slash. This helps
auth feature to judge path permission accurately.
2015-08-18 08:59:48 -07:00
Yicheng Qin
2c2249dadc
Merge pull request #3219 from yichengq/limit-listener
...
etcdmain: stop accepting client conns when it reachs limit
2015-08-06 12:17:49 -07:00
Yicheng Qin
97923ca3fc
etcdmain: close client conns when it exceeds limit
...
This solves the problem that etcd may fatal because its critical path
cannot get file descriptor resource when the number of clients is too
big. The PR lets the client listener close client connections
immediately after they are accepted when
the file descriptor usage in the process reaches some pre-set limit, so
it ensures that the internal critical path could always get file
descriptor when it needs.
When there are tons to clients connecting to the server, the original
behavior is like this:
```
2015/08/4 16:42:08 etcdserver: cannot monitor file descriptor usage
(open /proc/self/fd: too many open files)
2015/08/4 16:42:33 etcdserver: failed to purge snap file open
default2.etcd/member/snap: too many open files
[halted]
```
Current behavior is like this:
```
2015/08/6 19:05:25 transport: accept error: closing connection,
exceed file descriptor usage limitation (fd limit=874)
2015/08/6 19:05:25 transport: accept error: closing connection,
exceed file descriptor usage limitation (fd limit=874)
2015/08/6 19:05:26 transport: accept error: closing connection,
exceed file descriptor usage limitation (fd limit=874)
2015/08/6 19:05:27 transport: accept error: closing connection,
exceed file descriptor usage limitation (fd limit=874)
2015/08/6 19:05:28 transport: accept error: closing connection,
exceed file descriptor usage limitation (fd limit=874)
2015/08/6 19:05:28 etcdserver: 80% of the file descriptor limit is
used [used = 873, limit = 1024]
```
It is available at linux system today because pkg/runtime only has linux
support.
2015-08-06 12:03:20 -07:00
Xiang Li
01c286ccb6
Merge pull request #3231 from xiang90/fallocate
...
pkg/fileutil: support perallocate
2015-08-06 10:25:28 -07:00
Xiang Li
39a4b6a5e5
pkg/fileutil: support perallocate
2015-08-06 10:10:58 -07:00
Xiang Li
58503817ec
etcdserver: internal request union
2015-08-05 07:47:10 -07:00
Yicheng Qin
6317abf7e4
pkg/transport: fix HTTPS downgrade bug for keepalive listener
...
If TLS config is empty, etcd downgrades keepalive listener from HTTPS to
HTTP without warning. This results in HTTPS downgrade bug for client urls.
The commit returns error if it cannot listen on TLS.
2015-07-21 12:53:21 -07:00
Xiang Li
b8279b3591
types: add len func for urlmaps
2015-07-21 12:53:20 -07:00
Yicheng Qin
1624235bb3
pkg/testutil: extend wait schedule time to 10ms
...
Waiting 3ms is not long enough for schedule to work well. The test suite
may fail once per 200 times in travis due to this. Extend this to 10ms
to ensure schedule could work. Now it could run 1000 times successfully
in travis.
2015-07-13 09:05:40 -07:00
Brandon Philips
09b9c30beb
pkg/transport: include debug output for trusted-ca
...
since --peer-ca-file is deprecated we need to update the debug output
before:
```
$ etcd ... --peer-cert-file infra1.crt -peer-key-file
infra1.key.insecure -peer-trusted-ca-file ca.crt --client-cert-auth
etcdmain: peerTLS: cert = infra1.crt, key = infra1.key.insecure, ca =
```
after:
```
$ etcd ... --peer-cert-file infra1.crt -peer-key-file
infra1.key.insecure -peer-trusted-ca-file ca.crt --client-cert-auth
etcdmain: peerTLS: cert = infra1.crt, key = infra1.key.insecure, ca = , trusted-ca = ca.crt
```
2015-07-04 14:28:18 -07:00
Yicheng Qin
3d4642c2c4
Merge pull request #3059 from yichengq/fix-wait-stress-test
...
pkg/wait: extend timeout to check closed channel
2015-06-25 11:16:54 -07:00
Yicheng Qin
eea7f28be4
pkg/wait: extend timeout to check closed channel
...
It is possible to trigger the time.After case if the timer went off
between time.After setting the timer for its channel and the time that
select looked at the channel. So it needs to be longer.
refer: https://groups.google.com/forum/#!topic/golang-nuts/1tjcV80ccq8
2015-06-25 10:43:12 -07:00
Yicheng Qin
107263ef9f
pkg/fileutil: fix TestPurgeFile
...
It needs to wait longer for file to be detected and removed sometimes.
2015-06-25 10:09:20 -07:00
Xiang Li
8e7fa9e201
Merge pull request #2976 from yichengq/fix-lock-test
...
pkg/fileutil: wait longer for relock
2015-06-12 15:20:18 -07:00
Yicheng Qin
7723b91c06
pkg/fileutil: wait longer for relock
...
multiple cpu running makes it slower, so it waits longer for relock.
2015-06-12 15:17:28 -07:00
Yicheng Qin
75f91bab5c
pkg/fileutil: wait longer before checking purge results
...
multiple cpu running may be slower than single cpu running, so it may
take longer time to remove files.
Increase from 5ms to 20ms to give it enough time.
2015-06-12 14:36:15 -07:00
Xiang Li
8ad7ed321e
*:godep log pkg
2015-06-11 14:22:14 -07:00
Xiang Li
4b5dbeff9b
pkg/pbutil: use leveled log
2015-06-11 14:19:53 -07:00
Xiang Li
865a5ffc61
pkg/osutil: use leveled log
2015-06-11 14:19:53 -07:00
Xiang Li
a45f53986f
pkg/netutil: use leveled log
2015-06-11 14:19:52 -07:00
Xiang Li
69819d334a
pkg/flags: use leveled log
2015-06-11 14:19:52 -07:00