Compiled a small Meteor app with “meteor build”, runs fine, but after the first publish/subscribe is established with a single client, the server CPU gets pinned to 100% forever until the process is restarted. Has anyone seen this before?
I believe it is related to a publish/subscribe. I have a console.log write output on the server when a Meteor publish happens. On the first publish request, the CPU gets pinned 100% forever.
MongoDB is running on the same machine, looks fine, nothing in its logs. Everything should be idle since the database rarely changes. The MongoDB itself never exceeds 1% CPU usage, so I doubt it’s an issue with the data. Feels like an infinite loop somewhere on the server, but it’s not my code!
I installed node-tick-processor to help debug, but not sure what to look for in the resulting log file. There are a lot of ticks mentioning “meteor-promise/fiber_pool.js” and “KeyedStoreIC”.
meteor build to a directory on a Linux server, do an npm install on the target directory, set the PORT=3000 and ROOT_URL, and run with node main as per the instructions here https://guide.meteor.com/deployment.html
The server CPU will now be pinned at 100% usage forever until the node process is stopped.
Further details. My meteor packages installed are:
email@example.com # Packages every Meteor app needs to have
firstname.lastname@example.org # Packages for a great mobile UX
email@example.com # The database Meteor supports right now
firstname.lastname@example.org # Compile .html files into Meteor Blaze views
email@example.com # Reactive variable for tracker
firstname.lastname@example.org # Helpful client-side library
email@example.com # Meteor's client-side reactive programming library
firstname.lastname@example.org # CSS minifier run for production mode
email@example.com # JS minifier run for production mode
firstname.lastname@example.org # ECMAScript 5 compatibility for older browsers.
ecmascript # Enable ECMAScript2015+ syntax in app code
email@example.com # Server-side component of the `meteor shell` command