Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ENOTEMPTY and EPERM exceptions while bundling Meteor application on Win7? :(

Tags:

meteor

Help!

I've been working with Meteor for about two months now, and everything is going swimmingly in my OSX home environment. But I recently brought some of that code into our Windows 7 environment at work, and Meteor isn't behaving the same on Windows.

Specifically, code bundling keeps getting borked. When I make changes to the code base, instead of flushing the old .meteor/local directory, and rebundling the application, it's barfing a ENOTEMPTY exception at me in the server console. If I halt the mongod process in Task Explorer and manually delete the .meteor/local directory, I can restart the application, and it will bundle and deploy the app with the new code changes.

Running on: http://localhost:3000/
No dependency info in bundle. Filesystem monitoring disabled.
Errors prevented startup:
Exception while bundling application:
Error: ENOTEMPTY, directory not empty 'c:\Users\Abigail\My Documents\GitHub\canvas tracker\.meteor\local\build\server'
    at Object.fs.rmdirSync (fs.js:456:18)
    at Object.module.exports.rm_recursive (c:\Program Files (x86)\Meteor\app\lib\files.js:256:10)
    at c:\Program Files (x86)\Meteor\app\lib\files.js:254:15
    at Array.forEach (native)
    at Function._.each._.forEach (c:\Program Files (x86)\Meteor\lib\node_modules\underscore\underscore.js:79:11)
    at Object.module.exports.rm_recursive (c:\Program Files (x86)\Meteor\app\lib\files.js:252:9)
    at _.extend.write_to_directory (c:\Program Files (x86)\Meteor\app\lib\bundler.js:493:11)
    at Object.exports.bundle (c:\Program Files (x86)\Meteor\app\lib\bundler.js:685:12)
    at exports.run.restart_server (c:\Program Files (x86)\Meteor\app\meteor\run.js:615:26)
    at c:\Program Files (x86)\Meteor\app\meteor\run.js:726:9

Please fix the problem and restart.

But it doesn't do on-the-fly code changes and re-bundles anymore. :( I'm also getting EPERM errors sometimes when I try launching the application.

Running on: http://localhost:3000/
No dependency info in bundle. Filesystem monitoring disabled.
Errors prevented startup:
Exception while bundling application:
Error: EPERM, operation not permitted 'c:\Users\Abigail\My Documents\GitHub\canvas-tracker\.meteor\local\.build.build'
    at Object.fs.renameSync (fs.js:439:18)
    at _.extend.write_to_directory (c:\Program Files (x86)\Meteor\app\lib\bundler.js:628:8)
    at Object.exports.bundle (c:\Program Files (x86)\Meteor\app\lib\bundler.js:685:12)
    at exports.run.restart_server (c:\Program Files (x86)\Meteor\app\meteor\run.js:615:26)
    at c:\Program Files (x86)\Meteor\app\meteor\run.js:726:9
    at Object.exports.launch_mongo (c:\Program Files (x86)\Meteor\app\lib\mongo_runner.js:146:5)
    at exports.run.launch (c:\Program Files (x86)\Meteor\app\meteor\run.js:712:39)
    at Server.exports.run (c:\Program Files (x86)\Meteor\app\meteor\run.js:770:5)
    at Server.g (events.js:193:14)
    at Server.EventEmitter.emit (events.js:90:17)

Please fix the problem and restart.

Any ideas on how to resolve this? I'm using Meteor 0.5.4 on Windows 7 Ultimate, SP1, x64.

Edit: I should mention that these errors occur whenever there's an error in the code. In my OSX environment, if I have an error, the code will still compile, minify, and bundle, and the page might not render and I'll get various Javascript errors in the Chrome console which I then have to debug. In my Win7 environment, I'm doing the exact same thing, but instead of compiling a semi-broken app that I can then debug in Chrome, it's halting during the bundle process. In either case, there's an error in my Javascript code (I know that much). But in OSX, it will still bundle and I can proceed to debugging. In Win7, I can't get to the debugging step because of these ENOTEMPTY and EPERM exceptions...

Edit: And, yes, I've tried nuking the permissions on the entire project directory by giving Full Access to Everyone. That didn't do the trick, unfortunately.

like image 469
AbigailW Avatar asked Jan 24 '13 19:01

AbigailW


1 Answers

Win7. Two Steps to made it work.

1) Delete the DB Lock From MongoDB C:\Users**USERNAME**\leaderboard.meteor\local\db mongod.lock

2) Close all Open Editors pointing to files in project C:\Users**USERNAME**\leaderboard.meteor\local\build\programs\client\app leaderboard.js

In my case i kept an editor open to edit the leaderboard.js It needs to be shut down, as the open file handle seems to interrupt.

like image 116
tarraWin7 Avatar answered Nov 15 '22 11:11

tarraWin7