moscajs / mosca

MQTT broker as a module
mosca.io
3.2k stars 513 forks source link

TypeError: Cannot read property 'insert' of undefined #737

Open program-spiritual opened 6 years ago

program-spiritual commented 6 years ago

at MongoAscoltatore.publish (/Users/genius/WebstormProjects/npmTest/node_modules/.3.2.0@ascoltatori/lib/mongo_ascoltatore.js:113:19) at MongoAscoltatore.newPublish (/Users/genius/WebstormProjects/npmTest/node_modules/.3.2.0@ascoltatori/lib/abstract_ascoltatore.js:144:20) at /Users/genius/WebstormProjects/npmTest/node_modules/.2.8.1@mosca/lib/server.js:383:22 at Server.storePacket (/Users/genius/WebstormProjects/npmTest/node_modules/.2.8.1@mosca/lib/server.js:488:5) at Server.publish (/Users/genius/WebstormProjects/npmTest/node_modules/.2.8.1@mosca/lib/server.js:377:8) at Object. (/Users/genius/WebstormProjects/npmTest/mqtt/server.js:32:8) at Module._compile (module.js:652:30) at Object.Module._extensions..js (module.js:663:10) at Module.load (module.js:565:32) at tryModuleLoad (module.js:505:12) at Function.Module._load (module.js:497:3) at Function.Module.runMain (module.js:693:10) at startup (bootstrap_node.js:188:16) at bootstrap_node.js:609:3

program-spiritual commented 6 years ago
When I use mongodb, it will throw this error, use redis will not happen like this
CurtisGreen commented 6 years ago

I have the same issue, I ran it through the node.js inspect debugger:

The odd thing is that it is not consistent, it will fail maybe 25% of the time and will work perfectly the other 75%. Perhaps there is some sort of race condition or maybe version incompatibility with something else. This happens on server startup, if the server starts up properly there will be no issues.

debug> c
< Debugger attached.
< C:\Users\Curtis\Documents\research\node_modules\ascoltatori\lib\mongo_ascoltatore.js:113
<   this.collection.insert(messageObj, { w: 1 }, done);
<                   ^
< TypeError: Cannot read property 'insert' of undefined
<     at MongoAscoltatore.publish (C:\Users\Curtis\Documents\research\node_modules\ascoltatori\lib\mongo_ascoltatore.js:113:19)
<     at MongoAscoltatore.newPublish (C:\Users\Curtis\Documents\research\node_modules\ascoltatori\lib\abstract_ascoltatore.js:144:20)
<     at C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:383:22
<     at Server.storePacket (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:488:5)
<     at Server.publish (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:377:8)
<     at Server.<anonymous> (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:253:12)
<     at emitOne (events.js:116:13)
<     at Server.emit (events.js:211:7)
<     at C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:81:19
<     at Server.restoreClientSubscriptions (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:532:5)
<     at completeConnection (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:72:17)
<     at C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:366:7
<     at Server.authenticate (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:414:3)
<     at Client.handleConnect (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:337:15)
<     at Connection.<anonymous> (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:146:10)
<     at Object.onceWrapper (events.js:315:30)
<     at emitOne (events.js:116:13)
<     at Connection.emit (events.js:211:7)
<     at Connection.emitPacket (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\connection.js:13:8)
<     at emitOne (events.js:116:13)
<     at Connection.emit (events.js:211:7)
<     at Connection.<anonymous> (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:786:14)
<     at emitNone (events.js:106:13)
<     at Connection.emit (events.js:208:7)
<     at emitReadable_ (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:448:10)
<     at emitReadable (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:444:5)
<     at readableAddChunk (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:187:9)
<     at Connection.Readable.push (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:149:10)
<     at Writable.dummyWrite [as _write] (C:\Users\Curtis\Documents\research\node_modules\reduplexer\index.js:103:14)
<     at doWrite (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_writable.js:237:10)
<     at writeOrBuffer (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_writable.js:227:5)
<     at Writable.write (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_writable.js:194:11)
<     at write (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:623:24)
<     at flow (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:632:7)
< Waiting for the debugger to disconnect...

Other times I can get a similar error:

C:\Users\Curtis\Documents\research\node_modules\mosca\lib\persistence\mongo.js:213
  this._subscriptions.find({ client: client.id })
                      ^

TypeError: Cannot read property 'find' of undefined
    at MongoPersistence.lookupSubscriptions (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\persistence\mongo.js:213:23)
    at Server.restoreClientSubscriptions (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\persistence\abstract.js:103:10)
    at completeConnection (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:72:17)
    at C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:366:7
    at Server.authenticate (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\server.js:414:3)
    at Client.handleConnect (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:337:15)
    at Connection.<anonymous> (C:\Users\Curtis\Documents\research\node_modules\mosca\lib\client.js:146:10)
    at Object.onceWrapper (events.js:315:30)
    at emitOne (events.js:116:13)
    at Connection.emit (events.js:211:7)
    at Connection.emitPacket (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\connection.js:13:8)
    at emitOne (events.js:116:13)
    at Connection.emit (events.js:211:7)
    at Connection.<anonymous> (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:786:14)
    at emitNone (events.js:106:13)
    at Connection.emit (events.js:208:7)
    at emitReadable_ (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:448:10)
    at emitReadable (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:444:5)
    at readableAddChunk (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:187:9)
    at Connection.Readable.push (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_readable.js:149:10)
    at Writable.dummyWrite [as _write] (C:\Users\Curtis\Documents\research\node_modules\reduplexer\index.js:103:14)
    at doWrite (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_writable.js:237:10)
    at writeOrBuffer (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_writable.js:227:5)
    at Writable.write (C:\Users\Curtis\Documents\research\node_modules\reduplexer\node_modules\readable-stream\lib\_stream_writable.js:194:11)
    at write (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:623:24)
    at flow (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:632:7)
    at DestroyableTransform.pipeOnReadable (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:664:5)
    at emitNone (events.js:106:13)
    at DestroyableTransform.emit (events.js:208:7)
    at emitReadable_ (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:448:10)
    at emitReadable (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:444:5)
    at readableAddChunk (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:187:9)
    at DestroyableTransform.Readable.push (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_readable.js:149:10)
    at DestroyableTransform.Transform.push (C:\Users\Curtis\Documents\research\node_modules\mqtt-connection\node_modules\readable-stream\lib\_stream_transform.js:145:32)
mrsoftware commented 5 years ago

https://github.com/mcollina/mosca/issues/443