You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Meteor.settings.packages.mongo.reCreateIndexOnOptionMismatch setting tries a wrong index name.
Steps to reproduce:
have an index { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: 1 } on users
try to set this index to { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: true } (not hard, Meteor does it by default)
get an error
W20220911-18:47:04.340(7)? (STDERR) /Users/firfi/.meteor/packages/meteor-tool/.2.7.3.hotyaf.3i5fm++os.osx.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:313
W20220911-18:47:04.340(7)? (STDERR) throw(ex);
W20220911-18:47:04.340(7)? (STDERR) ^
W20220911-18:47:04.381(7)? (STDERR) errorClass [Error]: [An error occurred when creating an index for collection "users: An equivalent index already exists with the same name but different options. Requested index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: true }, existing index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: 1 }]
W20220911-18:47:04.381(7)? (STDERR) at Collection.createIndex (packages/mongo/collection.js:770:15)
W20220911-18:47:04.381(7)? (STDERR) at setupUsersCollection (packages/accounts-base/accounts_server.js:1816:9)
W20220911-18:47:04.381(7)? (STDERR) at new AccountsServer (packages/accounts-base/accounts_server.js:74:5)
W20220911-18:47:04.381(7)? (STDERR) at packages/accounts-base/server_main.js:7:12
W20220911-18:47:04.381(7)? (STDERR) at module (packages/accounts-base/server_main.js:19:1)
W20220911-18:47:04.381(7)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20220911-18:47:04.382(7)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20220911-18:47:04.382(7)? (STDERR) at require (packages/modules-runtime.js:258:21)
W20220911-18:47:04.382(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/packages/accounts-base.js:2397:15
W20220911-18:47:04.382(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/packages/accounts-base.js:2404:3
W20220911-18:47:04.382(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:401:38
W20220911-18:47:04.382(7)? (STDERR) at Array.forEach (<anonymous>)
W20220911-18:47:04.382(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:226:21
W20220911-18:47:04.382(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:464:7
W20220911-18:47:04.382(7)? (STDERR) at Function.run (/Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/profile.js:280:14)
W20220911-18:47:04.382(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:463:13 {
W20220911-18:47:04.382(7)? (STDERR) isClientSafe: true,
W20220911-18:47:04.382(7)? (STDERR) error: 'An error occurred when creating an index for collection "users: An equivalent index already exists with the same name but different options. Requested index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: true }, existing index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: 1 }',
W20220911-18:47:04.382(7)? (STDERR) reason: undefined,
W20220911-18:47:04.382(7)? (STDERR) details: undefined,
W20220911-18:47:04.382(7)? (STDERR) errorType: 'Meteor.Error'
W20220911-18:47:04.382(7)? (STDERR) }
which is all right and expected behaviour for reCreateIndexOnOptionMismatch: false
now, set the option that should rectify the issue: in settings.json,
W20220911-18:51:37.164(7)? (STDERR)
W20220911-18:51:37.182(7)? (STDERR) /Users/firfi/.meteor/packages/meteor-tool/.2.7.3.hotyaf.3i5fm++os.osx.x86_64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:313
W20220911-18:51:37.182(7)? (STDERR) throw(ex);
W20220911-18:51:37.182(7)? (STDERR) ^
W20220911-18:51:37.234(7)? (STDERR) errorClass [Error]: [An error occurred when creating an index for collection "users: An equivalent index already exists with the same name but different options. Requested index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: true }, existing index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: 1 }]
W20220911-18:51:37.235(7)? (STDERR) at Collection.createIndex (packages/mongo/collection.js:770:15)
W20220911-18:51:37.235(7)? (STDERR) at setupUsersCollection (packages/accounts-base/accounts_server.js:1816:9)
W20220911-18:51:37.235(7)? (STDERR) at new AccountsServer (packages/accounts-base/accounts_server.js:74:5)
W20220911-18:51:37.235(7)? (STDERR) at packages/accounts-base/server_main.js:7:12
W20220911-18:51:37.235(7)? (STDERR) at module (packages/accounts-base/server_main.js:19:1)
W20220911-18:51:37.235(7)? (STDERR) at fileEvaluate (packages/modules-runtime.js:336:7)
W20220911-18:51:37.235(7)? (STDERR) at Module.require (packages/modules-runtime.js:238:14)
W20220911-18:51:37.235(7)? (STDERR) at require (packages/modules-runtime.js:258:21)
W20220911-18:51:37.235(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/packages/accounts-base.js:2397:15
W20220911-18:51:37.235(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/packages/accounts-base.js:2404:3
W20220911-18:51:37.235(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:401:38
W20220911-18:51:37.235(7)? (STDERR) at Array.forEach (<anonymous>)
W20220911-18:51:37.235(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:226:21
W20220911-18:51:37.235(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:464:7
W20220911-18:51:37.236(7)? (STDERR) at Function.run (/Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/profile.js:280:14)
W20220911-18:51:37.236(7)? (STDERR) at /Users/firfi/work/clients/darren/fiddlequest/.meteor/local/build/programs/server/boot.js:463:13 {
W20220911-18:51:37.236(7)? (STDERR) isClientSafe: true,
W20220911-18:51:37.236(7)? (STDERR) error: 'An error occurred when creating an index for collection "users: An equivalent index already exists with the same name but different options. Requested index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: true }, existing index: { v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: 1 }',
W20220911-18:51:37.236(7)? (STDERR) reason: undefined,
W20220911-18:51:37.236(7)? (STDERR) details: undefined,
W20220911-18:51:37.236(7)? (STDERR) errorType: 'Meteor.Error'
W20220911-18:51:37.236(7)? (STDERR) }
Therefore, the new option isn't only not fixing the error, but also adds new ones.
My assumption is that your code tries to call the index by the key: object keys (which is services.resume.loginTokens.token), whereas the real index name is services.resume.loginTokens.token_1.
Version 2.7.3 OSX
Reproduction repository:
Due to the nature of the bug, the code alone is not enough. Data operations/migrations are needed to show the issue, which are presented in the description above.
The text was updated successfully, but these errors were encountered:
Meteor.settings.packages.mongo.reCreateIndexOnOptionMismatch
setting tries a wrong index name.Steps to reproduce:
{ v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: 1 }
on users{ v: 2, unique: true, key: { services.resume.loginTokens.token: 1 }, name: "services.resume.loginTokens.token_1", sparse: true }
(not hard, Meteor does it by default)reCreateIndexOnOptionMismatch: false
an expected behaviour
it re-creates the index and runs
what I get
Therefore, the new option isn't only not fixing the error, but also adds new ones.
My assumption is that your code tries to call the index by the
key:
object keys (which isservices.resume.loginTokens.token
), whereas the real index name isservices.resume.loginTokens.token_1
.Version 2.7.3 OSX
Reproduction repository:
Due to the nature of the bug, the code alone is not enough. Data operations/migrations are needed to show the issue, which are presented in the description above.
The text was updated successfully, but these errors were encountered: