Openshift deployment leads to DDP timeouts / no minimongo access. How can I debug this?


#1

TLDR: My App on Openshift sends out XHR requests that time out, meaning I can’t use Meteor.call or access my subscriptions. What options do I have for debugging on Openshift?

I have an app which works fine on localhost. I deployed it to Openshift with Jeeeyul’s tutorial here

My React front end is served just fine, but the subscription’s “ready” event is never fired. It turns out NONE of my meteor data is ever loaded.

In Chrome dev tools, I see these XHR requests going through and either timing out or becoming canceled.

9838d7b….js?meteor_js_resource=true:67 GET https://<MY APP'S NAME>.com:8000/sockjs/info?cb=sef5cye645 net::ERR_CONNECTION_TIMED_OUT

It seems like one of those is sent out every second or so until the app gives up after a dozen tries. Each one fails. Is it using sockjs when it could use websockets?

Initially I thought the problem could be that my Openshift domain is behind HTTPS and the tutorial’s meteorshim.js was trying to use HTTP. I altered my meteorshim.js file to use https addresses for the environment variables instead of http, but the requests are still failing.

Another page calls a meteor method on form change. Works fine on localhost, but the version built on openshift doesn’t seem to send anything across the network. The onChange method fires, but the Meteor.call method never returns.

I think my biggest problem is that I do not know what tools I have to track what’s going on. The system works fine on localhost, so I can’t debug here. I can tail my Openshift log and see that it has started fine and doesn’t put out any errors, but I don’t know how to see if the server is ever seeing these incoming connections. What are my options for debugging at this point?

EDIT: Fixed! I Discovered that Openshift uses port 8443 for SSL, so I had to update this line in my meteorshim.js: process.env.DDP_DEFAULT_CONNECTION_URL = ‘https://’ + APP_DNS + ‘:8443’;