16 KiB
v3.2.18 (TBD)
See code changes and v3.2 upgrade guide for any breaking changes.
Improved
- Adjust election timeout on server restart to reduce disruptive rejoining servers.
- Previously, etcd fast-forwards election ticks on server start, with only one tick left for leader election. This is to speed up start phase, without having to wait until all election ticks elapse. Advancing election ticks is useful for cross datacenter deployments with larger election timeouts. However, it was affecting cluster availability if the last tick elapses before leader contacts the restarted node.
- Now, when etcd restarts, it adjusts election ticks with more than one tick left, thus more time for leader to prevent disruptive restart.
v3.2.17 (2018-03-08)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed: v2
Fixed: v3
- Fix server panic on invalid Election Proclaim/Resign HTTP(S) requests.
- Previously, wrong-formatted HTTP requests to Election API could trigger panic in etcd server.
- e.g.
curl -L http://localhost:2379/v3/election/proclaim -X POST -d '{"value":""}',curl -L http://localhost:2379/v3/election/resign -X POST -d '{"value":""}'.
- Prevent overflow by large
TTLvalues forLeaseGrant.TTLparameter toGrantrequest is unit of second.- Leases with too large
TTLvalues exceedingmath.MaxInt64expire in unexpected ways. - Server now returns
rpctypes.ErrLeaseTTLTooLargeto client, when the requestedTTLis larger than 9,000,000,000 seconds (which is >285 years). - Again, etcd
Leaseis meant for short-periodic keepalives or sessions, in the range of seconds or minutes. Not for hours or days!
- Enable etcd server
raft.Config.CheckQuorumwhen starting withForceNewCluster.
Security
- Compile with Go 1.8.7.
v3.2.16 (2018-02-12)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed: v3
- Fix
mvcc"unsynced" watcher restore operation.- "unsynced" watcher is watcher that needs to be in sync with events that have happened.
- That is, "unsynced" watcher is the slow watcher that was requested on old revision.
- "unsynced" watcher restore operation was not correctly populating its underlying watcher group.
- Which possibly causes missing events from "unsynced" watchers.
v3.2.15 (2018-01-22)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Prevent server panic from member update/add with wrong scheme URLs.
- Log user context cancel errors on stream APIs in debug level with TLS.
v3.2.14 (2018-01-11)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
Improved
v3.2.13 (2018-01-02)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Remove verbose error messages on stream cancel and gRPC info-level logs in server-side.
- Fix gRPC server panic on
GracefulStopTLS-enabled server.
v3.2.12 (2017-12-20)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Fix error message of
Revisioncompactor in server-side.
Added: clientv3
- Add
MaxCallSendMsgSizeandMaxCallRecvMsgSizefields toclientv3.Config.- Fix exceeded response size limit error in client-side.
- Address kubernetes#51099.
- In previous versions(v3.2.10, v3.2.11), client response size was limited to only 4 MiB.
MaxCallSendMsgSizedefault value is 2 MiB, if not configured.MaxCallRecvMsgSizedefault value ismath.MaxInt32, if not configured.
Other
- Pin grpc v1.7.5, grpc-gateway v1.3.0.
- No code change, just to be explicit about recommended versions.
v3.2.11 (2017-12-05)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Fix racey grpc-go's server handler transport
WriteStatuscall to prevent TLS-enabled etcd server crash.- Upgrade
google.golang.org/grpcv1.7.3tov1.7.4. - Add gRPC RPC failure warnings to help debug such issues in the future.
- Upgrade
- Remove
--listen-metrics-urlsflag in monitoring document (non-released inv3.2.x, planned forv3.3.x).
Added
- Provide more cert details on TLS handshake failures.
v3.2.10 (2017-11-16)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Replace backend key-value database
boltdb/boltwithcoreos/bboltto address backend database size issue. - Fix
clientv3balancer to handle network partitions.- Upgrade
google.golang.org/grpcv1.2.1tov1.7.3. - Upgrade
github.com/grpc-ecosystem/grpc-gatewayv1.2tov1.3.
- Upgrade
- Revert discovery SRV auth
ServerNamewith*.{ROOT_DOMAIN}to support non-wildcard subject alternative names in the certs (see issue #8445 for more contexts).- For instance,
etcd --discovery-srv=etcd.localwill only authenticate peers/clients when the provided certs have root domainetcd.local(not*.etcd.local) as an entry in Subject Alternative Name (SAN) field.
- For instance,
v3.2.9 (2017-10-06)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed(Security)
- Compile with Go 1.8.4.
- Update
golang.org/x/crypto/bcrypt(see golang/crypto@6c586e1). - Fix discovery SRV bootstrapping to authenticate
ServerNamewith*.{ROOT_DOMAIN}, in order to support sub-domain wildcard matching (see issue #8445 for more contexts).- For instance,
etcd --discovery-srv=etcd.localwill only authenticate peers/clients when the provided certs have root domain*.etcd.localas an entry in Subject Alternative Name (SAN) field.
- For instance,
v3.2.8 (2017-09-29)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Fix v2 client failover to next endpoint on mutable operation.
- Fix grpc-proxy to respect
KeysOnlyflag.
v3.2.7 (2017-09-01)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Fix server-side auth so concurrent auth operations do not return old revision error.
- Fix concurrency/stm Put with serializable snapshot
- Use store revision from first fetch to resolve write conflicts instead of modified revision.
v3.2.6 (2017-08-21)
See code changes.
Fixed
- Fix watch restore from snapshot.
- Fix
etcd_debugging_mvcc_keys_totalinconsistency. - Fix multiple URLs for
--listen-peer-urlsflag. - Add
--enable-pprofflag to etcd configuration file format.
v3.2.5 (2017-08-04)
See code changes and v3.2 upgrade guide for any breaking changes.
Changed
- Use reverse lookup to match wildcard DNS SAN.
- Return non-zero exit code on unhealthy
endpoint health.
Fixed
- Fix unreachable /metrics endpoint when
--enable-v2=false. - Fix grpc-proxy to respect
PrevKvflag.
Added
- Add container registry
gcr.io/etcd-development/etcd.
v3.2.4 (2017-07-19)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Do not block on active client stream when stopping server
- Fix gRPC proxy Snapshot RPC error handling
v3.2.3 (2017-07-14)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Let clients establish unlimited streams
Added
- Tag docker images with minor versions
- e.g.
docker pull quay.io/coreos/etcd:v3.2to fetch latest v3.2 versions
- e.g.
v3.2.2 (2017-07-07)
See code changes and v3.2 upgrade guide for any breaking changes.
Improved
- Rate-limit lease revoke on expiration.
- Extend leases on promote to avoid queueing effect on lease expiration.
Fixed
- Use user-provided listen address to connect to gRPC gateway.
net.Listenerrewrites IPv4 0.0.0.0 to IPv6 [::], breaking IPv6 disabled hosts.- Only v3.2.0, v3.2.1 are affected.
- Accept connection with matched IP SAN but no DNS match.
- Don't check DNS entries in certs if there's a matching IP.
- Fix 'tools/benchmark' watch command.
v3.2.1 (2017-06-23)
See code changes and v3.2 upgrade guide for any breaking changes.
Fixed
- Fix backend database in-memory index corruption issue on restore (only 3.2.0 is affected).
- Fix gRPC gateway Txn marshaling issue.
- Fix backend database size debugging metrics.
v3.2.0 (2017-06-09)
See code changes and v3.2 upgrade guide for any breaking changes.
Improved
- Improve backend read concurrency.
Added
- Embedded etcd
Etcd.Peersfield is now[]*peerListener.
- RPCs
- Add Election, Lock service.
- Native client etcdserver/api/v3client
- client "embedded" in the server.
- gRPC proxy
- Proxy endpoint discovery.
- Namespaces.
- Coalesce lease requests.
- v3 client
- STM prefetching.
- Add namespace feature.
- Add
ErrOldClusterwith server version checking. - Translate
WithPrefix()intoWithFromKey()for empty key.
- v3 etcdctl
- Add
check perfcommand. - Add
--from-keyflag to role grant-permission command. lockcommand takes an optional command to execute.
- Add
- etcd flags
- Add
--enable-v2flag to configure v2 backend (enabled by default). - Add
--auth-tokenflag.
- Add
etcd gateway- Support DNS SRV priority.
- Auth
- Support Watch API.
- JWT tokens.
- Logging, monitoring
- Server warns large snapshot operations.
- Add
etcd_debugging_server_lease_expired_totalmetrics.
- Security
- Deny incoming peer certs with wrong IP SAN.
- Resolve TLS
DNSNameswhen SAN checking. - Reload TLS certificates on every client connection.
- Release
- Annotate acbuild with supports-systemd-notify.
- Add
nsswitch.confto Docker container image. - Add ppc64le, arm64(experimental) builds.
- Compile with
Go 1.8.3.
Changed
- Increased
--snapshot-countdefault value from 10,000 to 100,000. - v3 client
LeaseTimeToLivereturns TTL=-1 resp on lease not found.clientv3.NewFromConfigFileis moved toclientv3/yaml.NewConfig.- concurrency package's elections updated to match RPC interfaces.
- let client dial endpoints not in the balancer.
- Dependencies
- Update
google.golang.org/grpctov1.2.1. - Update
github.com/grpc-ecosystem/grpc-gatewaytov1.2.0.
- Update
- Rejects domains names for
--listen-peer-urlsand--listen-client-urls(3.1 only prints out warnings), since domain name is invalid for network interface binding.
Fixed
- Allow v2 snapshot over 512MB.