Closed aaronc closed 5 years ago
Can you please provide the corresponding OS X point version and boot -V
output?
OS X 10.10.3 (14D136)
#https://github.com/boot-clj/boot
#Fri Jul 10 21:42:45 EDT 2015
BOOT_CLOJURE_VERSION=1.7.0
BOOT_VERSION=2.1.2
#App version: 2.0.0
There is a pending update to 10.10.4 from the App Store - maybe I should install that.
@aaronc Thanks, and yes if you can test on 10.10.4 that would be helpful as well.
I have the same problem with the same boot version and OS X version. The update to 10.10.4 didn't fix it.
Replied in the group thread, but I found this PR for libuv from 2013 when they had the issue, and an older post that describe the problem.
Apparently there are too many filesystem-change watch processes with large file sets on the same device. The fix implemented in libuv appears to be to use a single watcher for a device and filter the changes on notification to the ones you're really interested in.
Yeah I figured it out myself just now, I added "target" to resources to serve files properly with pedestal, and triggered an infinite watch loop. (set-env! :resource-paths #(disj % "target")) before the development task fixed it. Thanks anyway kirked.
Same thing for me when I'm building uberjar! Though removing "target" from :resource-paths
doesn't really help, I'm pointing to different :target-path
when building uberjar now.
I’m encountering the same problem for all boot tasks, including boot
only and boot repl
. No tasks are able to run at all. The error’s output is identical with that in the Google Groups thread.
Restarting my computer does not resolve the problem; clearing the build.boot
file does not resolve the problem. I was able temporarily to resolve the problem by clearing all files from ~/.boot/tmp
and clearing my build.boot
file to have blank content, but restoring my old build.boot
file made the problem reoccur.
I'm using OS X 10.11 (15A284). boot -v
outputs:
#https://github.com/boot-clj/boot
BOOT_CLOJURE_VERSION=1.7.0
BOOT_VERSION=2.3.0
#App version: 2.2.0
I've determined the problem after finding a related node.js issue. Three days ago, I installed two NPM modules into a node_modules subfolder within my source tree, in order to have them appear in my target directory. Removing the node_modules folder and, once more, clearing ~/.boot/tmp
together solved my issue: it probably is due to how many files the NPM modules contain. As a stopgap, it possible to exclude specific source subfolders from Boot’s file monitoring?
As a stopgap, it possible to exclude specific source subfolders from Boot’s file monitoring?
I'm looking into this right now and it seems very much possible.
Wouldn't the best fix be to prevent watching directories that contain too many files? Rather than forcing the user to explicitly exclude them?
FYI i'm seeing this on OS X 10.12.3
$ boot -V
#http://boot-clj.com
#Fri Mar 24 12:58:43 AEDT 2017
BOOT_CLOJURE_NAME=org.clojure/clojure
BOOT_CLOJURE_VERSION=1.8.0
BOOT_VERSION=2.5.5
This PR allows exclusion of certain directories from being watched. These changes could probably affect the issues outlined here.
Apparently there are too many filesystem-change watch processes with large file sets on the same device. The fix implemented in libuv appears to be to use a single watcher for a device and filter the changes on notification to the ones you're really interested in.
FWIW this also seems like an interesting observation but not sure how applicable that is to Boot.
Is this happening for anyone? I am on 10.14.2 with no issues and large directories.
Closing for now, please reopen if still an issue.
See this thread for details: https://groups.google.com/forum/#!topic/clojurescript/KUcELEvX18A