Hi all - this PR reverts the revert (85d74f8) of dfc0702, and includes fixes to address the previous test failures. I've labelled this as a work in progress, as I think it makes sense to also address the following issues, in this PR:
The tests will of course fail here until a new dev_bundle is generated / published, but we can hold off on that until the above items are addressed.
I'll re-cap the previous Mongo 3.6 PR notes (#9533), so we don't have to jump around:
This PR updates the Meteor Tool to use Mongo 3.6.2 for 64-bit OS' and Mongo 3.2.18 for 32-bit OS' (I've left the garbage
A few important mentions:
Mongo Node driver side note:
The Mongo Node driver has recently jumped into the 3.x range, and has introduced a few breaking changes. While we normally bump the Mongo Node driver to the most recent version when doing Mongo updates, I've left it in 2.x range for now. I'll submit a separate Mongo Node driver 3.x update PR, so we can keep the focus on the Mongo upgrade here. Mongo 3.6 will work with 2.x versions of the Mongo Node driver.
It may be worth clarifying that, while Windows and Mac do only come bundled with SSL, SSL is still not included with the Generic Linux tarball (which
I've built the dev bundle, though we'll want to remember to quell e73013b before merging (as notated with the
Thanks for looking at this, @hwillson!
The last part of this PR is to figure out what to do about #9591. When
The database can be repaired (see #9591 (comment)) and used with previous versions of Meteor, but this is a manual step. We can't really automate this as we'd then have to release new patch versions for older Meteor releases, to include the code to handle the database repair when the Mongo startup error happens. Due to the way Tool springboarding works, we can't just add code to handle the repair in Meteor 1.6.2, and expect to have it called when running
The accounts system `logoutOtherClients` method is using a connection close delay to make sure clients have a chance to get updated tokens, before older tokens are removed. Certain tests are setting this delay to 0, to help speed things up. The Meteor Mongo 3.6 changes have brought back in the need to use Mongo journaling, since the ability to disable journaling has been deprecated by Mongo. This means there is now a slight performance hit on certain Mongo operations, due to the increased time needed to cover the write to disk. This slight performance hit is causing the tests that use the 0 connection close delay to fail, since they are not waiting long enough for clients to get updated tokens, before they're removed. These changes increase the test connection close delay, to fix the failing tests.