sapling/eden/fs/service
Jyothsna Konisa f0587420a2 Race condition Fix on overlay lock during unmount
Summary:
Some test cases are crashing once in a whiled due to a race condition on lock over overlay directory.

when a mount point is unmounted, `EdenServer::mountFinished` called on `umount` where destruction of `EdenMount` object for the mount point happens. When a remount is called before the destruction of `EdenMount` a race condition is occuring on the lock of overlay directory as the undestructed `EdenMount` still holds the lock on overlay and the newly created `EdenMount` tries to grab a lock on overly.

Made the `EdenServer::unmount` asynchronous which waits for a promise that is set in `EdenServer::mountFinished`.

Reviewed By: simpkins

Differential Revision: D5515740

fbshipit-source-id: 5cbfddf13fe00c2cb1b63a6be6353e9b84fbd569
2017-07-31 20:52:35 -07:00
..
oss avoid multiple builds of the eden server library 2017-04-14 11:39:02 -07:00
__init__.py Add integration test for rebasing in Hg. 2017-07-27 17:24:01 -07:00
client.py use .eden/socket in hg extensions 2017-04-06 10:52:06 -07:00
DEFS avoid multiple builds of the eden server library 2017-04-14 11:39:02 -07:00
eden.thrift Integration Test for UnnloadFreeInodes 2017-06-22 22:38:47 -07:00
EdenError.cpp update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EdenError.h update all copyright statements to "2016-present" 2017-01-20 22:03:02 -08:00
EdenServer.cpp Race condition Fix on overlay lock during unmount 2017-07-31 20:52:35 -07:00
EdenServer.h Race condition Fix on overlay lock during unmount 2017-07-31 20:52:35 -07:00
EdenServiceHandler.cpp Race condition Fix on overlay lock during unmount 2017-07-31 20:52:35 -07:00
EdenServiceHandler.h Cli command to unload free inodes of a under a given directory. 2017-06-16 16:22:32 -07:00
GlobNode.cpp fix crashes triggered by the new TreeInode::Entry checks 2017-07-26 13:21:13 -07:00
GlobNode.h move eden/utils and eden/fuse into eden/fs 2017-04-14 11:39:02 -07:00
main.cpp move dropPrivileges() to UserInfo, and restore supplimentary groups 2017-07-27 19:39:00 -07:00
PrettyPrinters.cpp implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
PrettyPrinters.h implement "hg status" using EdenMount::diff() 2017-03-30 21:35:00 -07:00
streamingeden.thrift implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
StreamingSubscriber.cpp update logging statements to use folly logging APIs 2017-06-22 13:50:13 -07:00
StreamingSubscriber.h implement eden->watchman subscriptions 2017-03-21 13:35:20 -07:00
TARGETS Cleanup the logging targets 2017-06-23 15:58:11 -07:00
ThriftUtil.h update the checkOutRevision() API to accept a BinaryHash 2017-04-06 17:50:43 -07:00