RocketChat / Rocket.Chat

The communications platform that puts data protection first.
https://rocket.chat/
Other
40.4k stars 10.51k forks source link

OpLog error in logfiles #12719

Closed luckenbach closed 4 years ago

luckenbach commented 5 years ago

Description:

OpLog error in logs

Steps to reproduce:

Have a OpLog enabled RC instance

Expected behavior:

No errors in logs

Actual behavior:

This message repeats in the logs

Error in oplog callback TypeError: Cannot read property 'u' of undefined at ModelsBaseDb.RocketChat.models.Subscriptions.on (/app/bundle/programs/server/app/app.js:13272:58) at emitOne (events.js:116:13) at ModelsBaseDb.emit (events.js:211:7) at ModelsBaseDb.processOplogRecord (/app/bundle/programs/server/packages/rocketchat_lib.js:12178:12) at /app/bundle/programs/server/packages/mongo.js:1494:7 at runWithEnvironment (packages/meteor.js:1238:24) at Object.callback (packages/meteor.js:1251:14) at /app/bundle/programs/server/packages/ddp-server.js:2130:36 at Array.forEach (<anonymous>:null:null) at Function._.each._.forEach (packages/underscore.js:139:11) at DDPServer._Crossbar.fire (/app/bundle/programs/server/packages/ddp-server.js:2128:7) at /app/bundle/programs/server/packages/mongo.js:1719:26 at Meteor.EnvironmentVariable.EVp.withValue (packages/meteor.js:1186:12) at packages/meteor.js:502:25 at runWithEnvironment (packages/meteor.js:1238:24

Server Setup Information:

Additional context

Error just shows up inside of the logs

geekgonecrazy commented 5 years ago

Based on dm conversation seems like this is related to readPreference=nearest in connection string Which is likely related to: #8064

Basically even with w=majority... if it writes and immediately reads... or gets event from oplog and happens to read from 3rd node that isn’t part of the “majority” too fast... the data won’t have replicated to that node yet.

If you can some how get write concern to a set of nodes... and then read from that same set of nodes.. you could probably keep reading from secondaries. See tag sets for more reading

engelgabriel commented 4 years ago

This has been fixed on later versions