dblock / slack-gamebot

Ping pong, chess, pool and other games bot for Slack.
MIT License
129 stars 103 forks source link

Mongo::Error::OperationFailure: [11000]: E11000 duplicate key error collection: game-bot.users index: user_id_1_team_id_1 dup key #205

Closed dblock closed 2 years ago

dblock commented 2 years ago
I, [2022-06-28T11:16:56.482152 #228]  INFO -- : LOST: game=pong, name=Team Name, id=TEAMID - a challenge between user1 and user2
I, [2022-06-28T11:18:08.530498 #228]  INFO -- : LOST: game=pong, name=Team Name, id=TEAMID, Mongo::Error::OperationFailure: [11000]: E11000 duplicate key error collection: game-bot.users index: user_id_1_team_id_1 dup key: { : "DEADBEEF", : ObjectId('xyz') } (on dokku-mongo-game-bot:27017, legacy retry, attempt 1)
D, [2022-06-28T11:18:08.531045 #228] DEBUG -- : /app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/result.rb:348:in `raise_operation_failure'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/result.rb:314:in `validate!'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:36:in `block (3 levels) in validate_result'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:107:in `add_server_diagnostics'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:35:in `block (2 levels) in validate_result'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:54:in `add_error_labels'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:34:in `block in validate_result'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:93:in `unpin_maybe'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/response_handling.rb:33:in `validate_result'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/write.rb:49:in `block in execute'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/server/connection_pool.rb:593:in `with_connection'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/server.rb:437:in `with_connection'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/operation/shared/write.rb:38:in `execute'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/collection.rb:607:in `block (2 levels) in insert_one'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/retryable.rb:303:in `legacy_write_with_retry'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/retryable.rb:212:in `write_with_retry'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/collection.rb:596:in `block in insert_one'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/client.rb:1057:in `with_session'
/app/vendor/bundle/ruby/2.7.0/gems/mongo-2.15.1/lib/mongo/collection.rb:585:in `insert_one'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:72:in `insert_as_root'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:24:in `block in insert'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:107:in `block (2 levels) in prepare_insert'
/app/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6/lib/active_support/callbacks.rb:106:in `run_callbacks'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/interceptable.rb:122:in `run_callbacks'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:106:in `block in prepare_insert'
/app/vendor/bundle/ruby/2.7.0/gems/activesupport-6.1.6/lib/active_support/callbacks.rb:106:in `run_callbacks'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/interceptable.rb:122:in `run_callbacks'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:105:in `prepare_insert'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:20:in `insert'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:163:in `block in create!'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/threaded/lifecycle.rb:142:in `_creating'
/app/vendor/bundle/ruby/2.7.0/gems/mongoid-7.4.0/lib/mongoid/persistable/creatable.rb:158:in `create!'
/app/slack-gamebot/models/user.rb:81:in `find_by_slack_mention!'
/app/slack-gamebot/commands/lost.rb:26:in `block in <class:Lost>'
/app/slack-gamebot/commands/mixins/subscription.rb:14:in `block in subscribed_command'
/app/vendor/bundle/ruby/2.7.0/gems/slack-ruby-bot-0.16.1/lib/slack-ruby-bot/commands/base.rb:102:in `call_command'
/app/vendor/bundle/ruby/2.7.0/gems/slack-ruby-bot-0.16.1/lib/slack-ruby-bot/commands/base.rb:67:in `block in invoke'
/app/vendor/bundle/ruby/2.7.0/gems/slack-ruby-bot-0.16.1/lib/slack-ruby-bot/commands/base.rb:42:in `each_pair'
dblock commented 2 years ago

Fixed in https://github.com/dblock/slack-gamebot/commit/314235561e384e3d51d3db218e651f3d2657fd8c