Redis Oplog issue in Meteor 3.1

Hi all,

just played around with Meteor 3.1 a little bit and noticed a problem during server boot up. Here’s my log:

error on boot.js TypeError: self._mongoHandle._createSynchronousCursor is not a function
    at new PollingObserveDriver (packages/cultofcoders:redis-oplog/lib/mongo/PollingObserveDriver.js:67:47)
    at MongoConnection._observeChanges (packages/cultofcoders:redis-oplog/lib/mongo/observeChanges.js:113:21)
    at Cursor.observeChanges (packages/mongo/cursor.ts:75:24)
    at _getMultiplexer (packages/montiapm:meteorx/src/fiberless/mongo.js:35:32)
    at _getObserverDriver (packages/montiapm:meteorx/src/fiberless/mongo.js:42:29)
    at exposePollingDriver (packages/montiapm:meteorx/src/fiberless/mongo.js:57:24)
    at exposeMongoAsync (packages/montiapm:meteorx/src/fiberless/mongo.js:19:9)
    at initAsync (packages/montiapm:meteorx/src/server.js:37:3)
    at /tools/static-assets/server/boot.js:453:5
    at /tools/static-assets/server/boot.js:504:7
    at startServerProcess (/tools/static-assets/server/boot.js:501:3)
TypeError: self._mongoHandle._createSynchronousCursor is not a function
    at new PollingObserveDriver (packages/cultofcoders:redis-oplog/lib/mongo/PollingObserveDriver.js:67:47)
    at MongoConnection._observeChanges (packages/cultofcoders:redis-oplog/lib/mongo/observeChanges.js:113:21)
    at Cursor.observeChanges (packages/mongo/cursor.ts:75:24)
    at _getMultiplexer (packages/montiapm:meteorx/src/fiberless/mongo.js:35:32)
    at _getObserverDriver (packages/montiapm:meteorx/src/fiberless/mongo.js:42:29)
    at exposePollingDriver (packages/montiapm:meteorx/src/fiberless/mongo.js:57:24)
    at exposeMongoAsync (packages/montiapm:meteorx/src/fiberless/mongo.js:19:9)
    at initAsync (packages/montiapm:meteorx/src/server.js:37:3)
    at /tools/static-assets/server/boot.js:453:5
    at /tools/static-assets/server/boot.js:504:7
    at startServerProcess (/tools/static-assets/server/boot.js:501:3)
=> Exited with code: 1
=> Your application is crashing. Waiting for file change.

Btw, are there any plans to make redis-oplog part of meteor core? It would definitely put my mind at ease…

Hey @bratelefant , the method has been renamed to represent the correct behavior and I forgot to make it backwards compatible, I will write a patch for redis oplog ASAP

image

And yes, there are plans to bring to the core or make it an optional built-in strategy, however that’s more long term

4 Likes

@leonardoventurini Wanted to check in on this since it’s blocking us upgrading to Meteor 3.1. It also seems like there are now multiple versions of redis-oplog for Meteor 3:

There is also a new PR that just came into the Meteor 2 branch: v2.3 by StorytellerCZ · Pull Request #412 · cult-of-coders/redis-oplog · GitHub

I’m wondering which is the recommended fork moving forward, since this is such an important package!

Hey @brianlukoff I have a fix for it but need to get it propagated to the original package, will setup a PR for it today and @storyteller will help me get the changes released.

I also noticed the mess it is right now, I was almost opting on going for my own fork, but it’s best we use the original package in Atmosphere.

You can review the changes here:

Need to create another PR pointing upstream.

Thanks! Would it be possible to get an official 3.0 release published and maybe also include the EJSON performance update here? It sounds like this may help with GC.

Yes, I will make sure I have the latest upstream changes

2 Likes

I adapted the changes:

Will proceed to create a PR against MCP now

There we go cc @storyteller

4 Likes

Things progressed, but there is a merge conflict when trying to merge to master: