arunoda / meteor-smart-collections

Meteor Collections Re-Imagined
MIT License
147 stars 13 forks source link

In 0.3.12 updates to documents are not always being communicated back to the client correctly #33

Closed JackAdams closed 10 years ago

JackAdams commented 11 years ago

I've noticed that, since updating to 0.3.12, there have been odd behaviours when making updates to documents. Changes are being made in the database, but these changes are not always being relayed back to the client. So there's a flicker while the latency compensation uses the changed doc on the client but then when the server info comes back, the change is reverted (as if the change was rejected by allow/deny functions). But this is not the case, as refreshing the browser (or just checking the db) shows that the update has been persisted. However, this behaviour doesn't happen consistently. Sometimes I refresh the browser and everything's working as normal, sometimes I refresh the browser, perform the identical actions, and notice this problem.

arunoda commented 11 years ago

Yes. I am aware of this and this is a huge issue. I am working on it.

Will release a fix today or tommorow. In the meantime you can use linker branch of the smart collections.

On Tuesday, September 17, 2013, JackAdams wrote:

I've noticed that, since updating to 0.3.12, there have been odd behaviours when making updates to documents. Changes are being made in the database, but these changes are not always being relayed back to the client. So there's a flicker while the latency compensation uses the changed doc on the client but then when the server info comes back, the change is reverted (as if the change was rejected by allow/deny functions). But this is not the case, as refreshing the browser (or just checking the db) shows that the update has been persisted. However, this behaviour doesn't happen consistently. Sometimes I refresh the browser and everything's working as normal, sometimes I refresh the browser, perform the identical actions, and notice this problem.

— Reply to this email directly or view it on GitHubhttps://github.com/arunoda/meteor-smart-collections/issues/33 .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda

JackAdams commented 11 years ago

Cool. Thanks for your work on this, Arunoda. I have huge appreciation for all you've been able to achieve with Meteor so far.

arunoda commented 11 years ago

Ha ha. Thanks. It will better sooner :-)

On Tuesday, September 17, 2013, JackAdams wrote:

Cool. Thanks for your work on this, Arunoda. I have huge appreciation for all you've been able to achieve with Meteor so far.

Best, Brent


From: Arunoda Susiripala <notifications@github.com <javascript:_e({}, 'cvml', 'notifications@github.com');>> To: arunoda/meteor-smart-collections < meteor-smart-collections@noreply.github.com <javascript:_e({}, 'cvml', 'meteor-smart-collections@noreply.github.com');>> Cc: JackAdams <brent_abrahams@yahoo.com <javascript:_e({}, 'cvml', 'brent_abrahams@yahoo.com');>> Sent: Tuesday, September 17, 2013 7:30 PM Subject: Re: [meteor-smart-collections] In 0.3.12 updates to documents are not always being communicated back to the client correctly (#33)

Yes. I am aware of this and this is a huge issue. I am working on it.

Will release a fix today or tommorow. In the meantime you can use linker branch of the smart collections.

On Tuesday, September 17, 2013, JackAdams wrote:

I've noticed that, since updating to 0.3.12, there have been odd behaviours when making updates to documents. Changes are being made in the database, but these changes are not always being relayed back to the client. So there's a flicker while the latency compensation uses the changed doc on the client but then when the server info comes back, the change is reverted (as if the change was rejected by allow/deny functions). But this is not the case, as refreshing the browser (or just checking the db) shows that the update has been persisted. However, this behaviour doesn't happen consistently. Sometimes I refresh the browser and everything's working as normal, sometimes I refresh the browser, perform the identical actions, and notice this problem.

— Reply to this email directly or view it on GitHub< https://github.com/arunoda/meteor-smart-collections/issues/33> .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda — Reply to this email directly or view it on GitHub.

— Reply to this email directly or view it on GitHubhttps://github.com/arunoda/meteor-smart-collections/issues/33#issuecomment-24588596 .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda

arunoda commented 11 years ago

published the fix with new SmartCollections version 0.3.13

JackAdams commented 11 years ago

Sorry to be the bearer of bad tidings, but I'm still noticing the same behaviour in 0.3.13.

arunoda commented 11 years ago

Hmm.

Okay, I need to peek into what's happening behind the scene of the app. If you can do followings, it will helps me a lot to fix.

  1. Try to find scenario that this show
  2. Once you found it
  3. Use DDP Analyzer to track the DDP Messages
  4. Run SmartCollections with debug mode (export DEBUG=sc:* environment variable)

Send me both ddp log and debug messages.

JackAdams commented 11 years ago

I'm on this ... I'll get back to you as soon as I can.  It'll probably be a few hours yet -- my time is all blocked out this afternoon. Incidentally, I've only tested this (0.3.13) without oplog integration. Is the oplog/replica-set combination now required for Smart Collections to function? (Prior to 0.3.12 Smart Collections gave good performance improvements even without using the replica set and OPLOG_URL.)


From: Arunoda Susiripala notifications@github.com To: arunoda/meteor-smart-collections meteor-smart-collections@noreply.github.com Cc: JackAdams brent_abrahams@yahoo.com Sent: Wednesday, September 18, 2013 11:54 AM Subject: Re: [meteor-smart-collections] In 0.3.12 updates to documents are not always being communicated back to the client correctly (#33)

Hmm. Okay, I need to peek into what's happening behind the scene of the app. If you can do followings, it will helps me a lot to fix.

  1. Try to find scenario that this show
  2. Once you found it
  3. Use DDP Analyzer to track the DDP Messages
  4. Run SmartCollections with debug mode (use DEBUG=sc:*) Send me both ddp log and debug messages. — Reply to this email directly or view it on GitHub.
arunoda commented 11 years ago

Ah nop. You don't need OPLOG. It mostly needed when your app need to be hosted on multiple servers. Let me know how things goes. Happy to help you.

ritikm commented 11 years ago

We've been experiencing the same issue on our side (using SmartCollections v0.3.11 w/ oplog). Does v0.3.15 fix this issue?

Thanks a bunch.

arunoda commented 11 years ago

0.3.15 has a fix. But some people still getting it. For some this works. Im on another fix too.

On Saturday, September 21, 2013, Ritik Malhotra wrote:

We've been experiencing the same issue on our side (using SmartCollections v0.3.11 w/ oplog). Does v0.3.15 fix this issue?

Thanks a bunch.

— Reply to this email directly or view it on GitHubhttps://github.com/arunoda/meteor-smart-collections/issues/33#issuecomment-24838151 .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda

arunoda commented 11 years ago

Try version 0.3.16 It has another fix too. Let to know how it goes.

ritikm commented 11 years ago

Just tried 0.3.16, it's causing a different error on database writes:

ReferenceError: DDPServer is not defined
    at maybeBeginWrite (app/packages/smart-collections/lib/server_collection.js:359:15)
    at forEach.SmartCollection.(anonymous function) (app/packages/smart-collections/lib/server_collection.js:311:29)

It seems to be this addition in the following commit that's causing the issue: https://github.com/arunoda/meteor-smart-collections/commit/a2ddc825646d1cc2bf0de0dfde37e486273b04bf#L4R309. Reverting back to a version before that change doesn't cause the error, but doesn't take advantage of the new fixes that have been made.

For reference, we're currently on Meteor 0.6.4 and haven't upgraded to 0.6.5.1 just yet for various reasons.

JackAdams commented 11 years ago

I'm using 0.3.16 with Meteor 0.6.5.1 and the issue seems to be resolved. I can no longer reproduce the error I was getting.

(I haven't observed the problem Ritik described above.)

arunoda commented 11 years ago

@ritikm use 0.3.18 it has the fix for 0.6.4

ritikm commented 11 years ago

@arunoda, awesome, thanks for the patch. The client-syncing errors described in this issue were generally non-deterministic, so it's hard to reproduce them 100% of the time. We'll test it out and bring this up again if we do encounter it.

arunoda commented 11 years ago

Yes. I hope those are fixed now. Keep me informed.

On Tuesday, September 24, 2013, Ritik Malhotra wrote:

@arunoda https://github.com/arunoda, awesome, thanks for the patch. The client-syncing errors described in this issue were generally non-deterministic, so it's hard to reproduce them 100% of the time. We'll test it out and bring this up again if we do encounter it.

— Reply to this email directly or view it on GitHubhttps://github.com/arunoda/meteor-smart-collections/issues/33#issuecomment-24970696 .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda

JackAdams commented 11 years ago

The problem, as originally described, only occurs very, very occasionally. And only after I've left the app inactive long enough to lose the original connection, and even then only occasionally. Doing a browser reload immediately fixes the problem and it doesn't occur again.

arunoda commented 11 years ago

Hmm. I should give it a try with a disconnection to the server.

On Saturday, September 28, 2013, Brent Abrahams wrote:

The problem, as originally described, only occurs very, very occasionally. And only after I've left the app inactive long enough to lose the original connection, and even then only occasionally. Doing a browser reload immediately fixes the problem and it doesn't occur again.

— Reply to this email directly or view it on GitHubhttps://github.com/arunoda/meteor-smart-collections/issues/33#issuecomment-25296051 .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda

arunoda commented 10 years ago

is this solves the issue?

JackAdams commented 10 years ago

This is the same issue as #39, so I'm closing it and leaving #39 open (I opened them both -- sorry!). I'm still testing, but haven't noticed this problem since updating to 0.3.25.

arunoda commented 10 years ago

Okay. Keep watching.

On Mon, Jan 6, 2014 at 12:47 PM, Brent Abrahams notifications@github.comwrote:

This is the same issue as #39https://github.com/arunoda/meteor-smart-collections/issues/39, so I'm closing it and leaving #39https://github.com/arunoda/meteor-smart-collections/issues/39open (I opened them both -- sorry!). I'm still testing, but haven't noticed this problem since updating to 0.3.25.

— Reply to this email directly or view it on GitHubhttps://github.com/arunoda/meteor-smart-collections/issues/33#issuecomment-31631311 .

Arunoda Susiripala

@arunoda http://twitter.com/arunoda http://gplus.to/arunodahttps://github.com/arunoda http://www.linkedin.com/in/arunoda