-
-
Notifications
You must be signed in to change notification settings - Fork 961
Comparing changes
Open a pull request
base repository: fsnotify/fsnotify
base: v1.8.0
head repository: fsnotify/fsnotify
compare: v1.9.0
- 19 commits
- 32 files changed
- 3 contributors
Commits on Mar 19, 2025
-
Configuration menu - View commit details
-
Copy full SHA for e004fb8 - Browse repository at this point
Copy the full SHA e004fb8View commit details -
- macos-12 runner no longer exists, so use macos-13. - We switched to Linux/QEMU based runners some time ago, so less likely to run in to GitHub limits on macOS runners, meaning we have some room to test Go 1.17 on macOS now. - Update Cirrus CI FreeBSD image. - Run linux/arm64 on GitHub Actions, as that's now supported. - Remove iOS on CircleCI; I don't think that really adds much beyond macOS, and dealing with different CI systems is annoying. - Update latest Go version to 1.24
Configuration menu - View commit details
-
Copy full SHA for 7ed6dcb - Browse repository at this point
Copy the full SHA 7ed6dcbView commit details
Commits on Mar 31, 2025
-
Configuration menu - View commit details
-
Copy full SHA for 9a268ac - Browse repository at this point
Copy the full SHA 9a268acView commit details -
Fix TestRace/remove_self on illumos
Ignore some fs.ErrNotExist errors in locations where it's safe to do so. This is what all other backends do. Also add some more details to the errors; just "no such file or directory" is not very helpful.
Configuration menu - View commit details
-
Copy full SHA for 422572f - Browse repository at this point
Copy the full SHA 422572fView commit details -
Reduce intermittent "bad file descriptor" errors on kqueue
It's a long-standing problem that some tests intermittently fail on the CI with this, but with the new TestRace/remove_self it would be fairly consistently reproducible. Seems what would happen is that it did "fd := w.path[path]", and that this could return 0 as that path had already been removed. That would close fd 0 (stdin), fd 0 then got re-used for the next test, which would work for a bit until it didn't and you got an error. Also ignore some ErrNotExist errors. This doesn't completely fix it; it still fails on occasion. I want to rewrite the kqueue backend anyway, and it's been a problem for as long as I've been involved. So not a priority to completely fix it right now.
Configuration menu - View commit details
-
Copy full SHA for 0023e08 - Browse repository at this point
Copy the full SHA 0023e08View commit details -
Don't add double watches for symlinks
inotify_add_watch() follows symlinks, and returns the current watch descriptor when adding a patch twice. So when doing "watch dir" and "watch link" (or reverse) second watch is basically a no-op; yet it's still registered as a "separate" watch, and would panic on removing the second. The solution is to make the second Add() a no-op. This is also what kqueue does, and what happens if you watch the same path twice. On illumos watching a symlink currently means registering double watches; this is a separate bug that should be fixed. Fixes #652 Fixes #662
Configuration menu - View commit details
-
Copy full SHA for 520d098 - Browse repository at this point
Copy the full SHA 520d098View commit details -
Make BufferedWatcher buffered again
The size parameter didn't actually get passed to the make() call; regression from #632. Also make sure the default buffer size is 50 on Windows again. There is no need for a separate newBackend() and newBufferedBackend() in the first place, as the buffer size just controls the channel buffer size which is now done in the generic fsnotify.go, so refactor to remove that. Signed-off-by: Bryan Boreham <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for b190600 - Browse repository at this point
Copy the full SHA b190600View commit details -
Also only resolve symlinks explicitly given in Add()/AddWith(), and not those added "internally" as part of a listdir. Also don't ignore errors from os.Readlink() and os.Lstat; this was added in 2012 with bf36090 to ignore unresolvable symlinks when listing a directory, but we're no longer calling lstat() on the result of a link unless it's explicitly passed with Add(). Fixes #661
Configuration menu - View commit details
-
Copy full SHA for 3ec0517 - Browse repository at this point
Copy the full SHA 3ec0517View commit details -
Don't send unmount events on inotify
Events we get from inotify: FSNOTIFY_DEBUG: 13:18:09.748020414 IN_ISDIR|IN_UNMOUNT → "mnt/dir" FSNOTIFY_DEBUG: 13:18:09.748051964 IN_IGNORED → "mnt/dir" The IN_UNMOUNT wouldn't map to anything, so it would send an empty event. Fixes #655
Configuration menu - View commit details
-
Copy full SHA for f8059a6 - Browse repository at this point
Copy the full SHA f8059a6View commit details -
Correctly mark pre-existing entries when watching a link to a dir on …
…kqueue It would mark /dir/existing as seen, but would check for /link/existing. So on the first change in a directory it would list all pre-existing entries in the directory. Regression from d2ee00e; just wasn't a testcase.
Configuration menu - View commit details
-
Copy full SHA for c9507a5 - Browse repository at this point
Copy the full SHA c9507a5View commit details -
Add timeout-minutes in GitHub actions
Normally tests take 3 to 4 minutes at the most, for the tests that use a QEMU VM. But sometimes either a test or booting the VM will hang. Fail faster on this.
Configuration menu - View commit details
-
Copy full SHA for e48b91a - Browse repository at this point
Copy the full SHA e48b91aView commit details -
Move some shared code to a shared struct
It's all the same code now (wasn't historically). Only Windows is still different, so don't do it for that.
Configuration menu - View commit details
-
Copy full SHA for 8f6d48b - Browse repository at this point
Copy the full SHA 8f6d48bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 868a000 - Browse repository at this point
Copy the full SHA 868a000View commit details -
Simplify inotify backend locking
Change locking to be less fine-grained: just lock the watcher while we're processing an event, so we're operating on a consistent "snapshot". This is basically how it worked before 16df002. Moving some of bookkeeping to a separate "helper struct" was a good idea; doing the locking in that struct wasn't.
Configuration menu - View commit details
-
Copy full SHA for 2d897ca - Browse repository at this point
Copy the full SHA 2d897caView commit details -
I've tried to ping/contact the AIX people a few times over the last few years, and I never got a reply. So I deleted the branch a while ago. Supporting some proprietary OS where the developers can't even be bothered to acknowledge my existence is not on.
Configuration menu - View commit details
-
Copy full SHA for dbe0717 - Browse repository at this point
Copy the full SHA dbe0717View commit details
Commits on Apr 1, 2025
-
Configuration menu - View commit details
-
Copy full SHA for d321760 - Browse repository at this point
Copy the full SHA d321760View commit details -
Looks like it wasn't really being run? Guess I didn't use that -matrix correctly? Just use a simple shell script. Also run go vet, and remove the build workflow: that's redundant now.
Configuration menu - View commit details
-
Copy full SHA for e7ec5f7 - Browse repository at this point
Copy the full SHA e7ec5f7View commit details -
Add test to ensure Add()/Remove() works when not reading events
Taken from a branch I worked on some time ago where this was a bug. Also clarify that WatchList() order is undefined.
Configuration menu - View commit details
-
Copy full SHA for 644fbb6 - Browse repository at this point
Copy the full SHA 644fbb6View commit details
Commits on Apr 4, 2025
-
Configuration menu - View commit details
-
Copy full SHA for ae0e792 - Browse repository at this point
Copy the full SHA ae0e792View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v1.8.0...v1.9.0