Open defr0std opened 1 day ago
I guess you can compile your own version using --disable-xattr
Thanks, yes. This is what I am doing as a workaround after I found the root cause. But long term, it would be nicer if this was a part of the configuration.
Cross-posting this request from https://github.com/neovim/neovim/issues/30562. The issue seems to be the same in vim 9.1+ and Neovim 0.10+.
Problem
Hi,
I am working for a large software company. Our codebase is remote, and mounted locally on the workstations. We also have various automation tools which pick up changes to the files and perform build, test, deployment, etc.
Ever since Neovim 0.10+, there appeared quite annoying behavior in this workflow. When you save the file in Neovim, our automation tools first pick up a change to the file having no contents (as if the file was written completely empty), the build/test fails, and only on the second attempt it succeeds.
I have debugged this problem and traced the root cause to writing extended attributes from Neovim. If I run
strace
on Neovim 0.9+ vs any commit after 0.10+, then I see the difference of making various xattr calls in Neovim 0.10.+ (see strace output attached below). Since there are many attributes to set, the file write operation is also significantly slower (although that is still tolerable).I have also verified in a local build that if I remove the calls to os_copy_xattr, then the issue disappears.
Do you think it would be possible to add a configuration option to disable the handling of extended attributes?
Here is the output of
strace -e trace=file --decode-fds=path -p xxx
showing a single ":w" call. Note that file names and attribute names are masked. See the block of xattr calls in the middle of the trace.Expected behavior
Make it possible to disable copying of extended attributes via a configuration option.