sapling/eden/fs/takeover
Genevieve Helsel 9944a5dff5 add EdenServer recovery step and recover after failed takeover data send handshake
Summary:
* This adds a `EdenServer::recover()` method to start back up on unsuccessful takeover data send.
    * On an unsuccessful ping, filfill the `shutdownPromise` with a `TakeoverSendError` continaing the constructed `TakeoverData`. After this `recover` function is called, `takeoverPromise_` is reset, `takeoverShutdown` is set to `false`, and the `runningState_` is set to `RUNNING`.
With taking over from the returned `TakeoverData`, the user will not encounter `Transport not connected` errors on recovery.

* This adds a `EdenServer::closeStorage()` method to defer closing the `backingStore_` and `localStore_` until after our ready handshake is successful.
* This defers the shutdown of the `PrivHelper` until a successful ready handshake.

I also update the takeover documentation here with the new logic (and fix some formatting issues)

Reviewed By: simpkins

Differential Revision: D20433433

fbshipit-source-id: f59e660922674d281957e80aee5049735b901a2c
2020-04-07 09:52:21 -07:00
..
test add EdenServer recovery step and recover after failed takeover data send handshake 2020-04-07 09:52:21 -07:00
CMakeLists.txt fbcode_builder: rename add_thrift_cpp2_library() to add_fbthrift_cpp_library() 2019-08-29 16:45:12 -07:00
takeover.thrift Tidy up license headers 2019-10-11 05:28:23 -07:00
TakeoverClient.cpp add EdenServer recovery step and recover after failed takeover data send handshake 2020-04-07 09:52:21 -07:00
TakeoverClient.h add EdenServer recovery step and recover after failed takeover data send handshake 2020-04-07 09:52:21 -07:00
TakeoverData.cpp add additional takeover "ready" handshake 2020-04-07 09:52:21 -07:00
TakeoverData.h add EdenServer recovery step and recover after failed takeover data send handshake 2020-04-07 09:52:21 -07:00
TakeoverHandler.h add EdenServer recovery step and recover after failed takeover data send handshake 2020-04-07 09:52:21 -07:00
TakeoverServer.cpp add EdenServer recovery step and recover after failed takeover data send handshake 2020-04-07 09:52:21 -07:00
TakeoverServer.h add fault injection to TakeoverServer 2020-04-07 09:52:21 -07:00