mikeal / node.couchapp.js

Utility for writing couchapps.
Apache License 2.0
406 stars 78 forks source link

sometimes push stops working #28

Closed boxxxie closed 12 years ago

boxxxie commented 12 years ago

paul@paul-rt7-desktop:~/Dropbox/work/orders$ couchapp push app.js http://localhost:5984/transactions Preparing. paul@paul-rt7-desktop:~/Dropbox/work/orders$

i get this a lot. i don't really know what to do when this starts happening. restarting couchDB doesn't solve the problem.

max-mapper commented 12 years ago

i've noticed this once or twice but simply repeating the push command fixes it for me. i'll try to hack in a verbose mode sometime

boxxxie commented 12 years ago

i wish that worked for me. i had to reboot as my work around. is there some process i can kill/restart if i run into this again?

boxxxie commented 12 years ago

this is happening to me multiple times a day now, on different machines.

it would be nice to get at least a work around. I still don't know of a work around other than rebooting :(

boxxxie commented 12 years ago

is there a process i can kill so that couchapp will work again?

boxxxie commented 12 years ago

this is a really big problem for me. killing erlang and couchdb doesn't fix this. opening up another terminal doesn't fix this. i'm having to reboot my computer multiple times a day to push.

using ubuntu 11.04

nickperkinslondon commented 12 years ago

I get this too. It just says "Perparing.", then quits. It starts out infrequently, then becomes more and more frequent, then it gets to the point where only every 4 or 5 attempts works....then it gets to the point where it does not work at all. I guess I will try a reboot....but this is not good. If this continues I will have to go back to using the python couchapp.

nickperkinslondon commented 12 years ago

reboot did not help. about 1 in 10 push attempts works, then rest just say "Preparing."

boxxxie commented 12 years ago

my problem is similar but different... when my push stops working, i can't get it to work again until a reboot. ubuntu 10.10 & 11.04 couchdb 1.1

it would be really great if there was any kind of work around.

max-mapper commented 12 years ago

the filewatcher logic for this is provided by https://github.com/mikeal/watch which relies on fs.watchFile in node core.

can you guys try running the watch tests and seeing if they pass on your machines?

boxxxie commented 12 years ago

i discovered why this is happening. i'm using emacs and when i don't save a file that is supposed to be uploaded couchapp will quit (i guess).

maybe it would be possible to include an error message for this, or post this as a note on the readme

cmadsen commented 12 years ago

After upgrading to node v0.6.6 I can not use sync/push:

couchapp sync app.js http://localhost:5984/test The "sys" module is now called "util". It should have a similar interface. Preparing.

After trying to sync numerous times it some times connects but changes to the files are not detected.

How do I run the tests in the watch module?

cmadsen commented 12 years ago

Added some console.log's to the walk function in the watch module.

Depending on the directory structure and contents the walk function sometimes does not manage to set callback.pending=0 when it exits causing the callback function not to be called

if (callback.pending === 0) callback(null, callback.files);
cmadsen commented 12 years ago

There is a bug (I think) in

function walk (dir, options, callback) {
   if (!callback) {callback = options; options = {}}
   if (!callback.files) callback.files = {};
   if (!callback.pending) callback.pending = 0;
   callback.pending += 1;
   fs.stat(dir, function (err, stat) {

should be

function walk (dir, options, callback) {
   if (!callback) {callback = options; options = {}}
   if (!callback.files) callback.files = {};
   if (!callback.pending) callback.pending = 0;
   fs.stat(dir, function (err, stat) {
     callback.pending += 1;

At least the change makes couchapp push work more reliably.

boxxxie commented 12 years ago

push only breaks for me when i have unsaved files... maybe an error message could be made for this situation.