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

Error in oplog callback #1767

Closed
cscott opened this Issue Jan 18, 2014 · 2 comments

Comments

Projects
None yet
3 participants
@cscott

cscott commented Jan 18, 2014

@glasser running on the oplog-with-operators release:

Error in oplog callback TypeError: Cannot call method 'has' of null
I20140117-21:50:13.826(-5)?     at _.extend._handleOplogEntrySteadyOrFetching (packages/mongo-livedata/oplog_observe_driver.js:256)
I20140117-21:50:13.827(-5)?     at packages/mongo-livedata/oplog_observe_driver.js:65
I20140117-21:50:13.827(-5)?     at packages/mongo-livedata/oplog_tailing.js:88
I20140117-21:50:13.827(-5)?     at runWithEnvironment (packages/meteor/dynamics_nodejs.js:88)
I20140117-21:50:13.828(-5)?     at packages/meteor/dynamics_nodejs.js:98
I20140117-21:50:13.828(-5)?     at packages/livedata/crossbar.js:77
I20140117-21:50:13.829(-5)?     at Array.forEach (native)
I20140117-21:50:13.829(-5)?     at Function._.each._.forEach (packages/underscore/underscore.js:89)
I20140117-21:50:13.830(-5)?     at _.extend.fire (packages/livedata/crossbar.js:76)
I20140117-21:50:13.830(-5)?     at packages/mongo-livedata/oplog_tailing.js:212
@Slava

This comment has been minimized.

Member

Slava commented Jan 18, 2014

Looks like the update event from oplog triggered a callback after the query was stopped.

@glasser glasser closed this in d30bb79 Jan 24, 2014

@glasser

This comment has been minimized.

Member

glasser commented Jan 24, 2014

Thanks! Analyzing the code, it seems most likely that this is the bug fixed by d30bb79. (This commit was able to be so simple because of fca2966, a refactoring inspired by this issue.) It's the only way I can see that that callback could have been called after the observe driver got stopped. (d868325 adds another assertion that makes it more clear that there's no other concurrency going on here.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment