Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Watchman #2458

Merged
merged 1 commit into from
Nov 25, 2014
Merged

Watchman #2458

merged 1 commit into from
Nov 25, 2014

Conversation

stefanpenner
Copy link
Contributor

[fixes #2226]

  • currently hard-coded to use watchman. It will only work on *nix and wont support windows.
  • polling is currently entirely disabled so virtual box users will have issues.

To use:

use node v0.11.x

use this branch:

npm install --save-dev stefanpenner/ember-cli#watchman

install watchman:

brew install watchman

docs: https://facebook.github.io/watchman/

  • auto-detect either in broccoli-sane-watcher or sane itself
  • confirm this is good.
  • wait for sane to release
  • release a new broccoli-sane-watcher
  • ensure watchman's options.filter is exposed.
  • improve watchman detection, by parsing and validating the json output. watchman version returns json payload of the person which would allow us to use node-semver to ensure a valid and compliant version is used.
  • restore https://github.com/stefanpenner/ember-cli/tree/watchman-auto
{
  "version": "3.0.0"
}

Commenters reporting issues, please provide:

node version
watchman version
ember-cli version
OS version:

@rwjblue
Copy link
Member

rwjblue commented Nov 7, 2014

Why disable polling?

@stefanpenner
Copy link
Contributor Author

@rwjblue in this branch is only to test watchman. Once i patch broccoli-sane-watch or sane to auto-detect I will restore polling. So i wanted to prevent any ambiguity in watcher.

This at least gives users who have this problem a resolution for today and help us get feedback.

@rwjblue
Copy link
Member

rwjblue commented Nov 7, 2014

Gotcha, thanks for clarifying. Also, another work around today for 0.1.2 is to use --watcher=polling (but that is more CPU intensive).

@jcope2013
Copy link
Contributor

@stefanpenner by polling you mean LiveReload? I am using this branch and it instantly fixed my Error: watch EMFILE issue without needing a restart but now I lost LiveReload so I have to stop and start my server to see changes in affected files

@stefanpenner
Copy link
Contributor Author

polling !== liveReload polling is another watching mechanism, and it live-reload happens at a higher level. Live reload appears to be working fine for me, maybe something else is fishy?

LiveReload so I have to stop and start my server to see changes in affected files

if live-reload is actually broken, why can't you just refresh the page?

@jcope2013
Copy link
Contributor

@stefanpenner actually its prolly more then LiveReload, When I make a change to a file and save, I check my console running ember serve and no rebuild happens, the app doesn't rebuild again with the new change until I restart the server

@stefanpenner
Copy link
Contributor Author

@jcope2013 please provide

node version
watchman version
ember-cli version
OS version:

@jcope2013
Copy link
Contributor

@stefanpenner restart of my computer fixed that issue but randomly my app server crashed and gave me this error message a few hours later

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: ENOENT, stat '/Users/JoshuaCope/Desktop/inbox-dashboard/app/controllers/modals/.subla98.tmp'
    at Error (native)

then I started the server back up and it is working fine again

node version: v0.11.14
watchman version: 2.9.8
ember-cli version: v0.1.2
OS version: Mac OS X 10.10

@stefanpenner
Copy link
Contributor Author

Error: ENOENT, stat '/Users/JoshuaCope/Desktop/inbox-dashboard/app/controllers/modals/.subla98.tmp'

I believe this is unrelated, rather a short race during stating.. Likely something in broccoli (thoughts @rwjblue ?)

@stefanpenner stefanpenner force-pushed the watchman branch 4 times, most recently from ce456a5 to 1cd5a1d Compare November 9, 2014 05:24
@stefanpenner stefanpenner added this to the v0.2.0 milestone Nov 9, 2014
hasWatchman: function() {
if (/win\d{2}/.test(os.platform())) {
debug('hasWatchman windows -> false');
return Promise.reject();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

move to rich object that fulfills with meaningful info.

@jcope2013
Copy link
Contributor

@stefanpenner updated today to the latest of this branch and now all I see on my screen is this after starting the server after when the first build in the console happens when I make a code change, a fix is to restart my server everytime I make a code change as this white screen only comes after the second and subsequent rebuilds after server launch, I have a co-worker who is also experiencing the same issues

screen shot 2014-11-10 at 5 07 19 pm

node version: v0.11.14
watchman version: 2.9.8
ember-cli version: v0.1.2
OS version: Mac OS X 10.10

@lukemelia
Copy link
Contributor

@stefanpenner this matches what I was seeing today too.

On Monday, November 10, 2014, Josh Cope [email protected] wrote:

@stefanpenner https://github.com/stefanpenner updated today to the
latest of this branch and now all I see on my screen is this after starting
the server after the first build happens after any code change, a fix is to
restart my server everytime I make a code change as this white screen only
comes after the first code change, I have a co-worker who is also
experiencing the same issues

[image: screen shot 2014-11-10 at 5 07 19 pm]
https://cloud.githubusercontent.com/assets/3374461/4984672/0f5e7656-6926-11e4-9eac-29f93db8f59d.png


Reply to this email directly or view it on GitHub
#2458 (comment)
.

@stefanpenner
Copy link
Contributor Author

@lukemelia which version of watchman?

@stefanpenner
Copy link
Contributor Author

@lukemelia maybe i can get my hands on your machine tomorrow and do some debugging?

@stefanpenner
Copy link
Contributor Author

can you two also try

brew install --HEAD watchman

@stefanpenner
Copy link
Contributor Author

oops correction watchman --HEAD is going to be the same as the latest on brew. Which is actually 3.0.0 so @lukemelia and @jcope2013 please update.

I'll try and investigate on luke's machines this mornng

@stefanpenner
Copy link
Contributor Author

if you guys can update to the latest version of this branch and start ember with:

DEBUG=express*,ember-cli:watcher* ember s

And then provide the output (from the boot that it boots to the point that it stops working)

@lukemelia
Copy link
Contributor

➜  account git:(account-section) ✗ DEBUG=express*,ember-cli:watcher* ember s
version: 0.1.2
  ember-cli:watcher init +0ms
  ember-cli:watcher hasWatchman: `which watchman` +3ms
  express:application compile etag weak +0ms
  express:application compile query parser extended +1ms
  express:application compile trust proxy false +0ms
  express:application booting in development mode +1ms
  express:router use / query +2ms
  express:router:layer new / +1ms
  express:router use / expressInit +1ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms
  express:router use /ember-cli-live-reload.js <anonymous> +5ms
  express:router:layer new /ember-cli-live-reload.js +0ms
  express:router use / <anonymous> +11ms
  express:router:layer new / +0ms
Livereload server on port 37532
Serving on http://0.0.0.0:6003/prefs/
  ember-cli:watcher buildOptions: watchman found +574ms
  ember-cli:watcher buildOptions { polling: false, verbose: true, watchman: true } +0ms
using: WatchmanWatcher
  ember-cli:watcher didChange: { directory: '/Volumes/EmberCliRamdisk/account/tree_merger-tmp_dest_dir-LvhAIs8c.tmp', graph: { tree: { inputTrees: [Object], options: [Object], description: 'TreeMerger (allTrees)', tmpDestDir: '/Volumes/EmberCliRamdisk/account/tree_merger-tmp_dest_dir-LvhAIs8c.tmp' }, subtrees: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], selfTime: 12863043, totalTime: 35006989860, directory: '/Volumes/EmberCliRamdisk/account/tree_merger-tmp_dest_dir-LvhAIs8c.tmp' }, totalTime: 35006989860, filePath: undefined } +35s

Build successful - 35007ms.

Slowest Trees                  | Total
-------------------------------+----------------
EsnextFilter                   | 17980ms
JSHint - App                   | 5573ms
EsnextFilter                   | 2790ms
ES6Concatenator                | 2166ms
ES3SafeFilter                  | 1946ms

  ember-cli:watcher didInitialize +28ms
  express:router dispatching GET /prefs/assets/vendor.css +45s
  express:router query  : /prefs/assets/vendor.css +2ms
  express:router expressInit  : /prefs/assets/vendor.css +1ms
  express:router <anonymous>  : /prefs/assets/vendor.css +0ms
  express:router <anonymous>  : /prefs/assets/vendor.css +1ms
  express:router dispatching GET /prefs/assets/account.css +8ms
  express:router query  : /prefs/assets/account.css +1ms
  express:router expressInit  : /prefs/assets/account.css +0ms
  express:router <anonymous>  : /prefs/assets/account.css +0ms
  express:router <anonymous>  : /prefs/assets/account.css +0ms
  express:router dispatching GET /prefs/assets/vendor.js +4ms
  express:router query  : /prefs/assets/vendor.js +0ms
  express:router expressInit  : /prefs/assets/vendor.js +0ms
  express:router <anonymous>  : /prefs/assets/vendor.js +0ms
  express:router <anonymous>  : /prefs/assets/vendor.js +0ms
  express:router dispatching GET /prefs/assets/account.js +87ms
  express:router query  : /prefs/assets/account.js +1ms
  express:router expressInit  : /prefs/assets/account.js +2ms
  express:router <anonymous>  : /prefs/assets/account.js +0ms
  express:router <anonymous>  : /prefs/assets/account.js +1ms
  express:router dispatching GET /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.woff +2s
  express:router query  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.woff +0ms
  express:router expressInit  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.woff +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.woff +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.woff +0ms
  express:router dispatching GET /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.ttf +223ms
  express:router query  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.ttf +0ms
  express:router expressInit  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.ttf +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.ttf +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/regular/ProximaNova-Reg-webfont.ttf +0ms
  express:router dispatching GET /prefs/assets/account.js +67ms
  express:router query  : /prefs/assets/account.js +0ms
  express:router expressInit  : /prefs/assets/account.js +0ms
  express:router <anonymous>  : /prefs/assets/account.js +0ms
  express:router <anonymous>  : /prefs/assets/account.js +0ms
  express:router dispatching GET /prefs/assets/images/site-header/yapp_120x52.png +3s
  express:router query  : /prefs/assets/images/site-header/yapp_120x52.png +0ms
  express:router expressInit  : /prefs/assets/images/site-header/yapp_120x52.png +0ms
  express:router <anonymous>  : /prefs/assets/images/site-header/yapp_120x52.png +0ms
  express:router <anonymous>  : /prefs/assets/images/site-header/yapp_120x52.png +0ms
  express:router dispatching GET /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.woff +5ms
  express:router query  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.woff +0ms
  express:router expressInit  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.woff +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.woff +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.woff +0ms
  express:router dispatching GET /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.woff +32ms
  express:router query  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.woff +0ms
  express:router expressInit  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.woff +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.woff +1ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.woff +0ms
  express:router dispatching GET /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.ttf +284ms
  express:router query  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.ttf +1ms
  express:router expressInit  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.ttf +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.ttf +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/light/ProximaNova-Light-webfont.ttf +0ms
  express:router dispatching GET /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.ttf +2ms
  express:router query  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.ttf +0ms
  express:router expressInit  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.ttf +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.ttf +0ms
  express:router <anonymous>  : /prefs/assets/fonts/proxima-nova/thin/ProximaNova-Thin-webfont.ttf +0ms
file changed components/user-info-name.js
  ember-cli:watcher didChange: { directory: '/Volumes/EmberCliRamdisk/account/tree_merger-tmp_dest_dir-2YkHfEjg.tmp', graph: { tree: { inputTrees: [Object], options: [Object], description: 'TreeMerger (allTrees)', tmpDestDir: '/Volumes/EmberCliRamdisk/account/tree_merger-tmp_dest_dir-2YkHfEjg.tmp' }, subtrees: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], selfTime: 22924917, totalTime: 4012974955, directory: '/Volumes/EmberCliRamdisk/account/tree_merger-tmp_dest_dir-2YkHfEjg.tmp' }, totalTime: 4012974955, filePath: '/Users/lmelia/p/yapp/account/app/components/user-info-name.js' } +27s

Build successful - 4013ms.

Slowest Trees                  | Total
-------------------------------+----------------
EsnextFilter                   | 694ms
CustomStaticCompiler           | 452ms
JSHint - App                   | 304ms
ES6Concatenator                | 254ms
TreeMerger (app)               | 207ms

  express:router dispatching GET /prefs/assets/vendor.css +16s
  express:router query  : /prefs/assets/vendor.css +0ms
  express:router expressInit  : /prefs/assets/vendor.css +0ms
  express:router <anonymous>  : /prefs/assets/vendor.css +0ms
  express:router <anonymous>  : /prefs/assets/vendor.css +1ms
  express:router dispatching GET /prefs/assets/account.css +6ms
  express:router query  : /prefs/assets/account.css +0ms
  express:router expressInit  : /prefs/assets/account.css +0ms
  express:router <anonymous>  : /prefs/assets/account.css +0ms
  express:router <anonymous>  : /prefs/assets/account.css +0ms
  express:router dispatching GET /prefs/assets/vendor.js +4ms
  express:router query  : /prefs/assets/vendor.js +0ms
  express:router expressInit  : /prefs/assets/vendor.js +0ms
  express:router <anonymous>  : /prefs/assets/vendor.js +0ms
  express:router <anonymous>  : /prefs/assets/vendor.js +0ms
  express:router dispatching GET /prefs/assets/account.js +36ms
  express:router query  : /prefs/assets/account.js +0ms
  express:router expressInit  : /prefs/assets/account.js +0ms
  express:router <anonymous>  : /prefs/assets/account.js +0ms
  express:router <anonymous>  : /prefs/assets/account.js +1ms

@rDarge
Copy link

rDarge commented Nov 11, 2014

@stefanpenner also having the same problem here

node version: v0.10.32
watchman version: 2.9.8
ember-cli version: v0.1.2
OS version: Mac OS X 10.9.4

$ DEBUG=express*,ember-cli:watcher* ember s
version: 0.1.2
  ember-cli:watcher init +0ms
  ember-cli:watcher hasWatchman: `which watchman` +1ms
  express:application compile etag weak +0ms
  express:application compile query parser extended +0ms
  express:application compile trust proxy false +0ms
  express:application booting in development mode +1ms
  express:router use / query +2ms
  express:router:layer new / +0ms
  express:router use / expressInit +1ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +2ms
  express:router:layer new / +0ms
  express:router use /ember-cli-live-reload.js <anonymous> +0ms
  express:router:layer new /ember-cli-live-reload.js +0ms
  express:router use / <anonymous> +3ms
  express:router:layer new / +0ms
Livereload server on port 35729
Serving on http://0.0.0.0:4200/
  ember-cli:watcher buildOptions: watchman found +744ms
  ember-cli:watcher buildOptions { polling: false, verbose: true, watchman: true } +0ms
using: WatchmanWatcher

components/filter-table.js: line 42, col 39, Expected '!==' and instead saw '!='.

1 error

controllers/modals/payment-report.js: line 31, col 14, 'sweetAlert' is not defined.
controllers/modals/payment-report.js: line 41, col 14, 'sweetAlert' is not defined.
controllers/modals/payment-report.js: line 56, col 34, 'params' is not defined.

3 errors

mixins/invoices-save.js: line 14, col 30, Expected '===' and instead saw '=='.
mixins/invoices-save.js: line 14, col 13, Confusing use of '!'.
mixins/invoices-save.js: line 14, col 59, Expected '===' and instead saw '=='.
mixins/invoices-save.js: line 14, col 38, Confusing use of '!'.

4 errors

===== 3 JSHint Errors

WARNING: $relative-font-sizing is true but $font-unit is set to 1em which is not a relative unit.
     app/styles/compass/stylesheets/compass/typography/vertical_rhythm:53

WARNING: $relative-font-sizing is true but $font-unit is set to 1em which is not a relative unit.
     app/styles/compass/stylesheets/compass/typography/vertical_rhythm:53

  ember-cli:watcher didChange: { directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-m3otJ17h.tmp', graph: { tree: { inputTrees: [Object], options: [Object], description: 'TreeMerger (allTrees)', tmpDestDir: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-m3otJ17h.tmp' }, subtrees: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], selfTime: 18473824, totalTime: 6886403653, directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-m3otJ17h.tmp' }, totalTime: 6886403653, filePath: undefined } +9s

Build successful - 6886ms.

Slowest Trees                  | Total          
-------------------------------+----------------
JSHint - App                   | 1176ms         
SassCompiler                   | 994ms          
TemplateCompiler               | 931ms          
ES6Concatenator                | 774ms          
ES3SafeFilter                  | 739ms          
Concat                         | 466ms          
ES6Concatenator                | 455ms          

  ember-cli:watcher didInitialize +4ms
  express:router dispatching GET /users?page=1&perPage=10 +2m
  express:router query  : /users?page=1&perPage=10 +2ms
  express:router expressInit  : /users?page=1&perPage=10 +2ms
  express:router <anonymous>  : /users?page=1&perPage=10 +0ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms
  express:router <anonymous>  : /users?page=1&perPage=10 +2ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms
  express:router dispatching GET /ember-cli-live-reload.js +122ms
  express:router query  : /ember-cli-live-reload.js +1ms
  express:router expressInit  : /ember-cli-live-reload.js +0ms
  express:router <anonymous>  : /ember-cli-live-reload.js +0ms
  express:router <anonymous>  : /ember-cli-live-reload.js +0ms
  express:router <anonymous>  : /ember-cli-live-reload.js +3ms
  express:router trim prefix (/ember-cli-live-reload.js) from url /ember-cli-live-reload.js +0ms
  express:router <anonymous> /ember-cli-live-reload.js : /ember-cli-live-reload.js +0ms
  express:router dispatching GET /assets/vendor.css +5ms
  express:router query  : /assets/vendor.css +0ms
  express:router expressInit  : /assets/vendor.css +0ms
  express:router <anonymous>  : /assets/vendor.css +0ms
  express:router <anonymous>  : /assets/vendor.css +0ms
  express:router <anonymous>  : /assets/vendor.css +3ms
  express:router <anonymous>  : /assets/vendor.css +0ms
  express:router dispatching GET /assets/inbox-dashboard.css +37ms
  express:router query  : /assets/inbox-dashboard.css +0ms
  express:router expressInit  : /assets/inbox-dashboard.css +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +1ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +4ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +0ms
  express:router dispatching GET /assets/vendor.js +23ms
  express:router query  : /assets/vendor.js +0ms
  express:router expressInit  : /assets/vendor.js +0ms
  express:router <anonymous>  : /assets/vendor.js +0ms
  express:router <anonymous>  : /assets/vendor.js +0ms
  express:router <anonymous>  : /assets/vendor.js +2ms
  express:router <anonymous>  : /assets/vendor.js +1ms
  express:router dispatching GET /assets/inbox-dashboard.js +109ms
  express:router query  : /assets/inbox-dashboard.js +0ms
  express:router expressInit  : /assets/inbox-dashboard.js +1ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +2ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +0ms
  express:router dispatching GET /assets/inbox-dashboard.css.map +71ms
  express:router query  : /assets/inbox-dashboard.css.map +0ms
  express:router expressInit  : /assets/inbox-dashboard.css.map +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +1ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +2ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +0ms
  express:router dispatching GET /assets/ih-logo-white.png +1s
  express:router query  : /assets/ih-logo-white.png +1ms
  express:router expressInit  : /assets/ih-logo-white.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white.png +2ms
  express:router <anonymous>  : /assets/ih-logo-white.png +0ms
  express:router dispatching GET /assets/ih-logo-white-xs.png +21ms
  express:router query  : /assets/ih-logo-white-xs.png +0ms
  express:router expressInit  : /assets/ih-logo-white-xs.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +2ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +0ms
  express:router dispatching GET /assets/fontawesome-webfont.woff?v=3.2.1 +41ms
  express:router query  : /assets/fontawesome-webfont.woff?v=3.2.1 +0ms
  express:router expressInit  : /assets/fontawesome-webfont.woff?v=3.2.1 +0ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +0ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router dispatching GET /fonts/bootstrap/glyphicons-halflings-regular.woff +10s
  express:router query  : /fonts/bootstrap/glyphicons-halflings-regular.woff +1ms
  express:router expressInit  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +2ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
file changed index.html
  ember-cli:watcher didChange: { directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-bvXUYQDh.tmp', graph: { tree: { inputTrees: [Object], options: [Object], description: 'TreeMerger (allTrees)', tmpDestDir: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-bvXUYQDh.tmp' }, subtrees: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], selfTime: 57325009, totalTime: 1924957310, directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-bvXUYQDh.tmp' }, totalTime: 1924957310, filePath: '/Users/New/Documents/InboxDashboard/app/index.html' } +2m

Build successful - 1925ms.

Slowest Trees                  | Total          
-------------------------------+----------------
TreeMerger (app)               | 373ms          
ES6Concatenator                | 284ms          
ES3SafeFilter                  | 255ms          
TemplateCompiler               | 141ms          
SassCompiler                   | 113ms          
JSHint - App                   | 112ms          

  express:router dispatching GET /users?page=1&perPage=10 +20s
  express:router query  : /users?page=1&perPage=10 +0ms
  express:router expressInit  : /users?page=1&perPage=10 +1ms
  express:router <anonymous>  : /users?page=1&perPage=10 +0ms
  express:router <anonymous>  : /users?page=1&perPage=10 +0ms
  express:router <anonymous>  : /users?page=1&perPage=10 +2ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms

@stefanpenner
Copy link
Contributor Author

I am able to reproduce, but only when large amounts of files are changed. (e.g. via git co)

I am also not convinced it is watchman related, let me try and confirm,

@rDarge
Copy link

rDarge commented Nov 11, 2014

Just updated to 3.0.0 on watchman (from 2.9.8), getting the same error as before after changing any files:

$ DEBUG=express*,ember-cli:watcher* ember s
version: 0.1.2
  ember-cli:watcher init +0ms
  ember-cli:watcher hasWatchman: `which watchman` +1ms
  express:application compile etag weak +0ms
  express:application compile query parser extended +0ms
  express:application compile trust proxy false +1ms
  express:application booting in development mode +0ms
  express:router use / query +3ms
  express:router:layer new / +0ms
  express:router use / expressInit +0ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +0ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +1ms
  express:router:layer new / +0ms
  express:router use / <anonymous> +1ms
  express:router:layer new / +0ms
  express:router use /ember-cli-live-reload.js <anonymous> +0ms
  express:router:layer new /ember-cli-live-reload.js +0ms
  express:router use / <anonymous> +3ms
  express:router:layer new / +0ms
Livereload server on port 35729
Serving on http://0.0.0.0:4200/
  ember-cli:watcher buildOptions: watchman found +835ms
  ember-cli:watcher buildOptions { polling: false, verbose: true, watchman: true } +0ms
using: WatchmanWatcher

components/filter-table.js: line 42, col 39, Expected '!==' and instead saw '!='.

1 error

controllers/modals/payment-report.js: line 31, col 14, 'sweetAlert' is not defined.
controllers/modals/payment-report.js: line 41, col 14, 'sweetAlert' is not defined.
controllers/modals/payment-report.js: line 56, col 34, 'params' is not defined.

3 errors

mixins/invoices-save.js: line 14, col 30, Expected '===' and instead saw '=='.
mixins/invoices-save.js: line 14, col 13, Confusing use of '!'.
mixins/invoices-save.js: line 14, col 59, Expected '===' and instead saw '=='.
mixins/invoices-save.js: line 14, col 38, Confusing use of '!'.

4 errors

===== 3 JSHint Errors

WARNING: $relative-font-sizing is true but $font-unit is set to 1em which is not a relative unit.
     app/styles/compass/stylesheets/compass/typography/vertical_rhythm:53

WARNING: $relative-font-sizing is true but $font-unit is set to 1em which is not a relative unit.
     app/styles/compass/stylesheets/compass/typography/vertical_rhythm:53

  ember-cli:watcher didChange: { directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-3sZW2cRX.tmp', graph: { tree: { inputTrees: [Object], options: [Object], description: 'TreeMerger (allTrees)', tmpDestDir: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-3sZW2cRX.tmp' }, subtrees: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], selfTime: 16694501, totalTime: 6836975163, directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-3sZW2cRX.tmp' }, totalTime: 6836975163, filePath: undefined } +10s

Build successful - 6837ms.

Slowest Trees                  | Total          
-------------------------------+----------------
ES3SafeFilter                  | 1631ms         
SassCompiler                   | 1165ms         
JSHint - App                   | 995ms          
ES6Concatenator                | 802ms          
Concat                         | 400ms          

  ember-cli:watcher didInitialize +4ms
  express:router dispatching GET /users?page=1&perPage=10 +35s
  express:router query  : /users?page=1&perPage=10 +2ms
  express:router expressInit  : /users?page=1&perPage=10 +2ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms
  express:router <anonymous>  : /users?page=1&perPage=10 +0ms
  express:router <anonymous>  : /users?page=1&perPage=10 +3ms
  express:router <anonymous>  : /users?page=1&perPage=10 +0ms
  express:router dispatching GET /ember-cli-live-reload.js +183ms
  express:router query  : /ember-cli-live-reload.js +0ms
  express:router expressInit  : /ember-cli-live-reload.js +1ms
  express:router <anonymous>  : /ember-cli-live-reload.js +0ms
  express:router <anonymous>  : /ember-cli-live-reload.js +0ms
  express:router <anonymous>  : /ember-cli-live-reload.js +2ms
  express:router trim prefix (/ember-cli-live-reload.js) from url /ember-cli-live-reload.js +1ms
  express:router <anonymous> /ember-cli-live-reload.js : /ember-cli-live-reload.js +0ms
  express:router dispatching GET /assets/vendor.css +4ms
  express:router query  : /assets/vendor.css +0ms
  express:router expressInit  : /assets/vendor.css +0ms
  express:router <anonymous>  : /assets/vendor.css +1ms
  express:router <anonymous>  : /assets/vendor.css +0ms
  express:router <anonymous>  : /assets/vendor.css +2ms
  express:router <anonymous>  : /assets/vendor.css +0ms
  express:router dispatching GET /assets/inbox-dashboard.css +2ms
  express:router query  : /assets/inbox-dashboard.css +0ms
  express:router expressInit  : /assets/inbox-dashboard.css +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +5ms
  express:router <anonymous>  : /assets/inbox-dashboard.css +0ms
  express:router dispatching GET /assets/inbox-dashboard.js +2ms
  express:router query  : /assets/inbox-dashboard.js +0ms
  express:router expressInit  : /assets/inbox-dashboard.js +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +1ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +2ms
  express:router <anonymous>  : /assets/inbox-dashboard.js +0ms
  express:router dispatching GET /assets/vendor.js +1ms
  express:router query  : /assets/vendor.js +0ms
  express:router expressInit  : /assets/vendor.js +1ms
  express:router <anonymous>  : /assets/vendor.js +0ms
  express:router <anonymous>  : /assets/vendor.js +0ms
  express:router <anonymous>  : /assets/vendor.js +2ms
  express:router <anonymous>  : /assets/vendor.js +0ms
  express:router dispatching GET /assets/inbox-dashboard.css.map +247ms
  express:router query  : /assets/inbox-dashboard.css.map +0ms
  express:router expressInit  : /assets/inbox-dashboard.css.map +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +0ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +1ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +2ms
  express:router <anonymous>  : /assets/inbox-dashboard.css.map +0ms
  express:router dispatching GET /assets/ih-logo-white.png +1s
  express:router query  : /assets/ih-logo-white.png +0ms
  express:router expressInit  : /assets/ih-logo-white.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white.png +1ms
  express:router <anonymous>  : /assets/ih-logo-white.png +1ms
  express:router <anonymous>  : /assets/ih-logo-white.png +0ms
  express:router dispatching GET /assets/ih-logo-white-xs.png +9ms
  express:router query  : /assets/ih-logo-white-xs.png +0ms
  express:router expressInit  : /assets/ih-logo-white-xs.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +1ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +0ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +2ms
  express:router <anonymous>  : /assets/ih-logo-white-xs.png +0ms
  express:router dispatching GET /assets/fontawesome-webfont.woff?v=3.2.1 +8ms
  express:router query  : /assets/fontawesome-webfont.woff?v=3.2.1 +0ms
  express:router expressInit  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +0ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router <anonymous>  : /assets/fontawesome-webfont.woff?v=3.2.1 +1ms
  express:router dispatching GET /fonts/bootstrap/glyphicons-halflings-regular.woff +10s
  express:router query  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
  express:router expressInit  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +1ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +2ms
  express:router <anonymous>  : /fonts/bootstrap/glyphicons-halflings-regular.woff +0ms
file changed index.html
  ember-cli:watcher didChange: { directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-yda0LSkS.tmp', graph: { tree: { inputTrees: [Object], options: [Object], description: 'TreeMerger (allTrees)', tmpDestDir: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-yda0LSkS.tmp' }, subtrees: [ [Object], [Object], [Object], [Object], [Object], [Object], [Object] ], selfTime: 19985758, totalTime: 2441522275, directory: '/Users/New/Documents/InboxDashboard/tmp/tree_merger-tmp_dest_dir-yda0LSkS.tmp' }, totalTime: 2441522275, filePath: '/Users/New/Documents/InboxDashboard/app/index.html' } +48s

Build successful - 2442ms.

Slowest Trees                  | Total          
-------------------------------+----------------
JSHint - App                   | 402ms          
Funnel                         | 319ms          
SassCompiler                   | 313ms          
TemplateCompiler               | 300ms          
ES3SafeFilter                  | 239ms          

  express:router dispatching GET /users?page=1&perPage=10 +17s
  express:router query  : /users?page=1&perPage=10 +0ms
  express:router expressInit  : /users?page=1&perPage=10 +0ms
  express:router <anonymous>  : /users?page=1&perPage=10 +0ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms
  express:router <anonymous>  : /users?page=1&perPage=10 +1ms

@stefanpenner
Copy link
Contributor Author

I believe I have found the problem, it is a race between the watcher, builder and broccoli middleware.

This PR makes aspects of the watcher async, I suspect that is causing the issue. I will investigate tonight.

It appears we are serving files that no-longer exists, the tmp dir backing the files we want to serve has already been pruned. Possibilities: we are trying to serve stale data, we are trying to server files that do not yet exists (but will shortly) this seems unlikely, or the files we are trying to serve have been remove per-maturly.

I'm out of time, I will have to look into it tonight.

On a positive note, this appears to have nothing to do with watchman, but rather how we are detecting watchman. If we move the detection earlier, this will be fine. I would like to see if we can remove this race to allow for more flexibility here.

@stefanpenner
Copy link
Contributor Author

i have removed the auto-detection for now, and will restore it later. This branch should once again work for people with watchman installed

https://github.com/stefanpenner/ember-cli/tree/watchman-auto still exists for auto-detection, but i will need to address the broccoli <-> watcher async race before it will work. Or more likely cheat, and do the detection earlier.

@thejchap
Copy link
Contributor

Has anybody had issues with broccoli-less-single on this branch? It seems like less files aren't being compiled and just getting copied over to dist. Going to investigate more, just wanted to check in

version: 0.1.2
node: 0.11.14
watchman: 3.0.0
OSX: 10.9.5

@thejchap
Copy link
Contributor

DOH seeing now the readme was updated....npm install --save-dev ember-cli-less

@@ -100,7 +100,7 @@
"broccoli-jshint": "0.5.3",
"broccoli-kitchen-sink-helpers": "0.2.5",
"broccoli-merge-trees": "0.2.1",
"broccoli-sane-watcher": "0.0.7",
"broccoli-sane-watcher": "krisselden/broccoli-sane-watcher",
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i'll need to cut a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
7 participants