Thread (3 messages) 3 messages, 2 authors, 2022-08-08

Re: Option to allow fsmonitor to run against repos on network file systems

From: Eric D <hidden>
Date: 2022-08-08 21:58:58

On Fri, Jul 1, 2022 at 9:32 AM Jeff Hostetler [off-list ref] wrote:


On 6/30/22 1:11 PM, Eric D wrote:
quoted
I can appreciate the concerns expressed here:
https://github.com/git/git/commit/d989b266c1a7ef47f27cec75e90f3dfefbfa0200

However, in my environment, our file servers are very capable and have
the requisite support. It would be great if there was an option to
override this check and allow fsmonitor to operate against network
filesystems.
Yeah, I was just being cautious.  I probably should have also added
concerns on the remote system being an actual Windows server or a
non-Windows host running SAMBA.  There were just too many combinations
for me to be comfortable enabling it by default (on the initial
release, at least).

Also, the ReadDirectoryChangesW() API limits the buffer size to 64k
for remote handles (because of protocol limitations), so there _may_
be more of an opportunity for dropped events on very busy remote file
systems.  (I never saw any dropped events in my testing (without
intentionally breaking things), but it is a possible concern, so again,
caution and safety...)  And I do handle dropped events and force a
resync and send the client a "trivial" response (so it must do a regular
scan), so output is still correct, but slower.


Having said all of that, I did do lots of testing and never had an
issue with remote drives actually working correctly, so I think it'd
be fine allow a config setting to optionally allow it.  I just didn't
want to clutter up things in advance if no one actually wanted to
use it on remote file systems.


I think it would be fine to have a "fsmonitor.allowRemote" or
"fsmonitor.allowWindowsRemote" config setting and default them to false
for now.  Or until we learn which combinations of remote mounts are
safe and/or problematic.

Jeff
OK, based on this and other conversations, I have implemented the following:

1. Introduced a new config setting, "fsmonitor.allowRemote"
"fsmonitor.allowRemote" has a default value of false. Setting it to
true overrides
fsmonitor's default behavior of rejecting network-mounted repos.

2. Restricted allowing remote repos to Windows clients using SMB
If the client is not using SMB and using a network path, then
fsmonitor will reject
the repo path regardless of the value of "fsmonitor.allowRemote"

-Eric
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help