sapling/eden/fs/utils
Andrew Milas 18bc0ee56a Add path information to inode tracing commands
Summary:
Currently the eden trace inode live and retroactive commands only display inode numbers in order to identify the inode whose event is being referenced. In order to help users more easily debug Eden, it would be helpful to also provide Inode names and/or inode paths to these commands. While computing inode paths can potentially be an expensive operation, we get over this by computing these paths outside of the critical path when inode events get published into tracebus and instead compute the paths in the thrift service handler for all inodes as they are needed. These paths are computed using the EdenMount's InodeMap.

However, as a consequence this might mean path information is not always available, namely during a start event when creating a new file, directory, or symlink while the live `eden trace inode` command is being run, or after an inode has been removed after its materialization event has occurred in the `eden trace indeed --retroactive` command. In these cases, an empty string is shown for the path, though a follow up diff is planned that will add file name information (not full paths) to each inode event as they occur that will be shown when full path information is unavailable.

Reviewed By: MichaelCuevas

Differential Revision: D37961108

fbshipit-source-id: 88d5d303eb5afc616ff46bc083cd96b55c572cfa
2022-07-19 16:30:46 -07:00
..
test remove some conditional includes 2022-07-19 12:37:57 -07:00
BucketedLog.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
BufVec.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Bug.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Bug.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
CaseSensitivity.h fs: fix license header 2022-01-04 15:00:07 -08:00
ChronoParse.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ChronoParse.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ChronoUnit.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ChronoUnit.gperf fs: fix license header 2022-01-04 15:00:07 -08:00
ChronoUnit.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Clock.cpp remove some conditional includes 2022-07-19 12:37:57 -07:00
Clock.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
CMakeLists.txt move handle 2022-04-04 11:37:38 -07:00
CoverageSet.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
CoverageSet.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
DirType.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
DirType.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
EdenError.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
EdenError.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
EdenTaskQueue.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
EdenTaskQueue.h fs: fix license header 2022-01-04 15:00:07 -08:00
EnumValue.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
FaultInjector.cpp Add process kill fault to FaultInjector 2022-07-13 20:08:12 -07:00
FaultInjector.h Add process kill fault to FaultInjector 2022-07-13 20:08:12 -07:00
FileDescriptor.cpp unistd: replace with Folly's portability header 2022-06-17 09:52:56 -07:00
FileDescriptor.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
FileHash.cpp openssl: use Folly's portability header instead 2022-06-17 09:52:56 -07:00
FileHash.h fs: fix license header 2022-01-04 15:00:07 -08:00
FileUtils.cpp move handle 2022-04-04 11:37:38 -07:00
FileUtils.h utils: add a getAllDirectoryEntryNames function 2022-03-23 13:59:52 -07:00
FsChannelTypes.h fs: fix license header 2022-01-04 15:00:07 -08:00
Future.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
FutureUnixSocket.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
FutureUnixSocket.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Guid.h remove some conditional includes 2022-07-19 12:37:57 -07:00
IDGen.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
IDGen.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ImmediateFuture-inl.h utils: make move ImmediateFuture conditionally noexcept 2022-07-14 15:11:54 -07:00
ImmediateFuture-pre.h utils: refinement to ImmediateFuture::thenError 2022-07-13 15:31:42 -07:00
ImmediateFuture.h utils: make move ImmediateFuture conditionally noexcept 2022-07-14 15:11:54 -07:00
IoFuture.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
IoFuture.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
LazyInitialize.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
LeaseCache.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
MappedDiskVector.h remove some conditional includes 2022-07-19 12:37:57 -07:00
Memory.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
Memory.h fs: fix license header 2022-01-04 15:00:07 -08:00
NfsSocket.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
NfsSocket.h fs: fix license header 2022-01-04 15:00:07 -08:00
NotImplemented.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
PathFuncs.cpp remove some conditional includes 2022-07-19 12:37:57 -07:00
PathFuncs.h migrate to throw_ and throwf 2022-07-08 13:30:53 -07:00
PathMap.h pathmap: fix case sensitivity insertion ordering 2022-05-19 18:57:33 -07:00
Pipe.cpp unistd: replace with Folly's portability header 2022-06-17 09:52:56 -07:00
Pipe.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ProcessAccessLog.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ProcessAccessLog.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
ProcUtil.cpp fs: fix license header 2022-01-04 15:00:07 -08:00
ProcUtil.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
SortedInsert.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
SpawnedProcess.cpp unistd: replace with Folly's portability header 2022-06-17 09:52:56 -07:00
SpawnedProcess.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
SSLContext.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
SSLContext.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
StaticAssert.h fs: fix license header 2022-01-04 15:00:07 -08:00
StatTimes.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
SystemError.h utils: properly detect ENOENT on Windows 2022-06-16 15:57:28 -07:00
Thread.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Thread.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Throw.h migrate to throw_ and throwf 2022-07-08 13:30:53 -07:00
TimeUtil.cpp Add path information to inode tracing commands 2022-07-19 16:30:46 -07:00
TimeUtil.h Add path information to inode tracing commands 2022-07-19 16:30:46 -07:00
UnboundedQueueExecutor.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
UnboundedQueueExecutor.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
UnixSocket.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
UnixSocket.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
UserInfo.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
UserInfo.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Utf8.cpp standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
Utf8.h standardize namespaces on C++17 syntax 2022-05-17 10:12:56 -07:00
WinStackTrace.cpp windows: teach eden to look for pdb in the binary path 2022-05-03 13:39:24 -07:00
WinStackTrace.h windows: teach eden to look for pdb in the binary path 2022-05-03 13:39:24 -07:00
XAttr.cpp remove some conditional includes 2022-07-19 12:37:57 -07:00
XAttr.h remove some conditional includes 2022-07-19 12:37:57 -07:00