-
Notifications
You must be signed in to change notification settings - Fork 37
Add support for new client reset functionality #778
Conversation
6c9917e
to
3a1ab90
Compare
@tgoyne Is this ready or is anything missing? |
c92f968
to
faf4cdf
Compare
Status: Works as intended for Cocoa needs. Likely needs additional changes to support other SDKs. @cmelchior |
31d287f
to
eeb51ee
Compare
0e9ec87
to
2791266
Compare
2791266
to
9c09eb0
Compare
This is now up-to-date with latest master/core/sync. IIRC there were more things I wanted to test related to it, but nothing that would actually block merging this. |
@@ -181,9 +183,7 @@ stage('unit-tests') { | |||
|
|||
stage('publish') { | |||
node('docker') { | |||
publishReport('linux') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why remove these?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Building with coverage enabled greatly increases build time, and because we don't try to test any of the non-sync fallback code paths, the non-sync coverage reports don't tell us anything useful that isn't already covered by the sync-enabled coverage reports.
std::map<std::string, std::string> custom_http_headers; | ||
|
||
util::Optional<std::string> url_prefix = none; | ||
|
||
// The name of the directory which Realms should be backed up to following | ||
// a client reset | ||
util::Optional<std::string> recovery_directory = none; | ||
util::Optional<std::string> recovery_directory; | ||
ClientResyncMode client_resync_mode = ClientResyncMode::Recover; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no doubt that this is the sensible default, but should it be considered a breaking change for the SDK's? In the strictest sense, I think it is, but for almost all practical purposes this is better.
In any case, the bindings can override this to get the default behavior they want.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The argument was that we're turning an error scenario into a non-error rather than changing the behavior of correct things. The assumption is that in normal usage when running against a perfect server with infinite resource a client reset error will never occur, so client resync just lets us pretend that we're in that scenario more often than we actually are.
3.7 has a broken pthreads check that incorrectly concludes that everything needed is supplied by libc.
9c09eb0
to
a458c34
Compare
Currently actually just async open.