Meteor Issue with Method Life Cycle not returning DDP MSG:'Updated'


#1

Hello.

I have found a very bizarre bug that is rendering our website useless. We currenlty host our website on Galaxy, running Meteor 1.5.2, using Compose.io as a DB host.

The issue concerns DDP connections and the Meteor Method Life Cycle. The following is a run down of our finding. We have contacted Galaxy Support and are awaiting a reply but maybe someone here has experienced this before.


Findings:
We have discovered that on our hosted app, we can call

Meteor.loginWithPassword(’<your_email>’, ‘<your_pw>’, console.log)

but the callback will never invoke.

It can be validated independently by investigating the DDP messages that calling the function results in…

  1. The “method” message being sent to the server
  2. The “result” message being sent to the client from the server and
  3. The “updated” message is missing, gone, never happened, literally doesn’t exist.
  4. Meteor.connection._methodsBlockingQuiessence has an entry in it for the Method ID that was just generated

According to https://guide.meteor.com/methods.html#call-lifecycle this means the callback will not execute, which is what we find to be the case. This results in the user not logging in, and the spinner continuing to spin.

It is also important to note that this problem can be found in some other methods, with no apparent connecting comminalities. For example, I can change my service radius or travel time over and over again but not their calendar or credit card, which result in the issue above, every time.

Adding on to the seeming randomness, the same bug can attach itself to certain users, but not to others.

Eventually we did implement a band-aid, which operates like so: If you recreate the issue, where you call loginWithPassword, and then you call Meteor.disconnect() and then Meteor.reconnect() meteor will “forgive” the lack of the “update” message and accept the result


We cannot replicate any of these issue on our local machine even when we connect to the production database.
Any help or direction would be greatly appreciated.


#2

@jtirado12 do you have any updates on this issue? Did you contact Galaxy support?
We ran into similar issue, not sure if it’s exactly the same.

Meteor 1.6, DB on MLab, Galaxy small container.
After something happened loginWithPassword stopped working when you enter correct credentials - callback is never called, also if user was logged in previously and cookies exist, application doesn’t load as usual.
What’s interesting, that if you enter wrong credentials, callback receives error (Incorrect password).

The only fix is to restart Galaxy container (we did encounter this issue once before).


#3

We resolved by updating to the most recent version of mongo.

Here is a GitHub thread that helped us.

Good Luck.