Commit 1a6aec2
log case sensitivty during FUSE FSChannel creation
Summary:
# Project Context
EdenFS has a non-trivial threading model. It has a series of executors, some which have very specific purposes and some which handle generic work. Specific units of work (such as, serving a Thrift call) can jump around from one executor to another. A handful of Thrift entrypoints, like the entrypoints that handle prefetch and Watchman queries, have wide fanout, and can monopolize EdenFS' resources, leading to starvation and eventual Queue Timeouts for other Thrift methods.
Furthermore, there exist foot-guns in EdenFS that have caused repeated SEVs (S412223, S399431, S401889) and have caused user-visible issues like deadlocks and exceptions (D50199539, D41390586). These issues are easy to accidentally introduce due to the lack of guard rails in place and are difficult to root cause. Much of our threading rules/logic is mandated by in-code comments or learnt prior experience, which is not scalable and makes it hard to onboard and confidently land changes. This project's goal is to de-risk changes that touch these parts of the codebase and to make it easier to understand and optimize EdenFS' resource usage.
# Subtask Context
Most of our thread pools are managed by Folly executors. There are bounded and unbounded executors. We’ve encountered SEVs in the past where trying to enqueue work onto a full, bounded executor can cause a deadlock (S412223). To avoid these suites of problems, we can ensure all of our executors are unbounded and add backpressure manually at EdenFS' two entry points (Thrift and FSChannel) by limiting the amount of work that enters EdenFS using configurable semaphores.
# This Diff
This diff adds an `operator<<` for `CaseSensitivity` and adds case sensitivity to settings we log during `FuseChannel` creation.
# Resources
Reviewed By: kavehahmadi60
Differential Revision: D71060904
fbshipit-source-id: a59d85b32b6a653b235112fef14c959ee52da8461 parent 8b31dbc commit 1a6aec2
1 file changed
+5
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
11 | 12 | | |
12 | 13 | | |
13 | 14 | | |
| |||
17 | 18 | | |
18 | 19 | | |
19 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
20 | 25 | | |
0 commit comments