Commit Graph

801 Commits

Author SHA1 Message Date
e62d157aac docs: remove typo at end of changelog 2019-03-18 12:23:39 +01:00
99b3337b1c docs: add shields for license, language, donations + tweeting 2019-03-18 11:13:50 +01:00
dd673bf923 docs: condense snap job overview table row 2019-03-17 21:29:09 +01:00
158d1175e3 rename SinglePruner to LocalPruner 2019-03-17 21:18:25 +01:00
b25da7b9b0 job: snap: comment fix 2019-03-17 21:07:42 +01:00
5cd2593f52 job: snap: workaround for replication cursor requirement 2019-03-17 21:07:01 +01:00
d8d9e34914 pruner: single: remove unused member considerSnapAtCursorReplicated 2019-03-17 20:57:34 +01:00
e8c0d206ea docs: fix nitpicks 2019-03-17 20:54:47 +01:00
17818439a0 Merge branch 'problame/replication_refactor' into InsanePrawn-master 2019-03-17 17:33:51 +01:00
056be1185d dist: add grafana dashboard
fixes #116
2019-03-16 16:12:34 +01:00
b0898ec8bc dist: systemd service definition template
fixes #117
refs #145
2019-03-16 16:12:34 +01:00
133b7013a0 Merge remote-tracking branch 'origin/master' into problame/replication_refactor 2019-03-16 16:09:40 +01:00
dabf7e3ec9 build: travis: Go1.12 and some refactorings 2019-03-16 16:02:45 +01:00
da3ba50a2c Merge remote-tracking branch 'origin/master' into problame/replication_refactor 2019-03-16 14:48:01 +01:00
5eababe0b0 endpoing: receiver: return visitErr on traversal error
fixes #137
2019-03-16 14:47:34 +01:00
b2c5ffcaea rpc: dataconn: handle incorrect handler return values
refs #137
2019-03-16 14:47:29 +01:00
4ee00091d6 pull job: support manual-only invocation 2019-03-16 14:24:05 +01:00
c655622bf7 build: travis: allow_failures of go:master 2019-03-15 22:43:18 +01:00
71d331af16 Add CircleCI config
Doesn't cover all of Travis, but CircleCI archives artifacts.
2019-03-15 22:15:15 +01:00
34052d98d6 docs: move snap job below all replication-related job types 2019-03-15 22:00:29 +01:00
3543fbbb65 docs: clarify language & example of source-side pruning workaround 2019-03-15 22:00:29 +01:00
aff639e87a Merge remote-tracking branch 'origin/master' into InsanePrawn-master 2019-03-15 21:05:20 +01:00
5dfe24eeee Merge 'joshsouza/fix_peer_cert_chains' into 'master' 2019-03-15 18:40:05 +01:00
78ec5aa716 Merge remote-tracking branch 'origin/master' into joshsouza-fix_peer_cert_chains 2019-03-15 18:37:11 +01:00
457d5bad9a Merge 'ximalias/Ximalas-syslog-facility' into 'master' 2019-03-15 18:33:47 +01:00
a0f301d700 syslog logging: fix priority parsing + add test for default facility 2019-03-15 18:18:16 +01:00
fc311a9fd6 syslog logging: support setting facility in config 2019-03-15 17:55:11 +01:00
a7993d18c6 transport/tls: clarify docs & error message language 2019-03-15 17:17:25 +01:00
5595cff6a6 Merge branch 'master' into fix_peer_cert_chains 2019-03-15 16:34:21 +01:00
2c3b3c093d rpc: do not leak grpc state change logger goroutine 2019-03-15 16:18:01 +01:00
ab3e783168 rpc: treat protocol handshake errors as permanent
treat handshake errors as permanent on the client

The issue was observed by 100% CPU usage due to lack ofrate-limiting in
dataconn.ReqPing retries=> safeguard that
2019-03-15 16:18:01 +01:00
7584c66bdb pruner: remove retry handling + fix early give-up
Retry handling is broken since the gRPC changes (wrong error classification).
Will come back at some point, hopefully by merging the replication
driver retry infrastructure.

However, the simpler architecture allows an easy fix for the problem
that the pruner practically gave up on the first error it encountered.

fixes #123
2019-03-13 21:04:39 +01:00
d78d20e2d0 pruner: skip placeholders + FSes without correspondents on source
fixes #126
2019-03-13 20:42:37 +01:00
b85ec52387 rpc/ctrl: nicer perr info debug log messages 2019-03-13 19:20:04 +01:00
edcd258cc9 replication: more elaborate messages for Conflict errors 2019-03-13 18:46:04 +01:00
d5250bbf51 client/status: fix wrap for multiline strings with leading space 2019-03-13 18:46:04 +01:00
d50e553ebb handle changes to placeholder state correctly
We assumed that `zfs recv -F FS` would basically replace FS inplace, leaving its children untouched.
That is in fact not the case, it only works if `zfs send -R` is set, which we don't do.

Thus, implement the required functionality manually.

This solves a `zfs recv` error that would occur when a filesystem previously created as placeholder on the receiving side becomes a non-placeholder filesystem (likely due to config change on the sending side):

  zfs send pool1/foo@1 | zfs recv -F pool1/bar
  cannot receive new filesystem stream:
  destination has snapshots (eg. pool1/bar)
  must destroy them to overwrite it
2019-03-13 18:46:04 +01:00
1eb0f12a61 replication: add diff test case 2019-03-13 18:45:40 +01:00
8129ed91f1 zfs + replication: migrate dead zfs/diff_test.go to replication/logic/diff
(and remove the dead code from package zfs)
2019-03-13 16:39:10 +01:00
c87759affe replication/driver: automatic retries on connectivity-related errors 2019-03-13 15:00:40 +01:00
07b43bffa4 replication: refactor driving logic (no more explicit state machine) 2019-03-13 15:00:40 +01:00
0230c6321f rpc/dataconn: microbenchmark 2019-03-13 13:57:21 +01:00
796c5ad42d rpc rewrite: control RPCs using gRPC + separate RPC for data transfer
transport/ssh: update go-netssh to new version
    => supports CloseWrite and Deadlines
    => build: require Go 1.11 (netssh requires it)
2019-03-13 13:53:48 +01:00
d281fb00e3 socketpair: directly export *net.UnixConn (and add test for that behavior) 2019-03-13 11:36:34 +01:00
76a6c623f3 tlsconf and transport/tls: support NSS-formatted keylog file for debugging
... via env variable
2019-03-13 00:28:38 +01:00
25c974f0b5 envconst: support for int64 2019-03-13 00:07:33 +01:00
ea719f5b5a build: use 'git describe --always' to determine ZREPL_VERSION 2019-03-13 00:07:33 +01:00
3105fa4ff8 build: use dep's required feature for dev tools 2019-03-12 23:43:39 +01:00
f724480c7b Add documentation regarding using a certificate chain 2019-01-22 10:09:24 -08:00
5c5e8c0baf Documentation changes mostly as requested 2019-01-22 16:46:34 +01:00