In both PaaS I am getting:
Mongo::Error::OperationFailure: Cursor not found (namespace: 'db.document', id: 2091440633504332855). (43)
The processes failing are sidekiq jobs, it's not a matter of timeout, they fail right after started. The weird thing is that if I restart the daemons, it works, but after 10/15 minutes they fail again.
I am using mongoid 5, compose as mongo hosting, DB 3.2. In compose they expose 2 mongos to connect.
My mongo.yml:
production:
- Configure available database clients. (required)
clients: - Defines the default client. (required)
default: - Defines the name of the default database that Mongoid can connect to.
- (required).
database: <%= ENV['MONGODB'] %> - Provides the hosts the default client can connect to. Must be an array
- of host:port pairs. (required)
hosts:
- <%= ENV['MONGOURI1'] %>
- <%= ENV['MONGOURI2'] %>
options:
- Change the default write concern. (default =
{ w: 1 }
)
- write:
- w: 1
- Change the default read preference. Valid options for mode are: :secondary,
- :secondary_preferred, :primary, :primary_preferred, :nearest
- (default: primary)
- read:
- mode: :secondary_preferred
- tag_sets:
- - use: web
- The name of the user for authentication.
- The name of the user for authentication.
user: <%= ENV['MONGOUSER'] %>
- The password of the user for authentication.
password: <%= ENV['MONGOPASS'] %>
- Change the default authentication mechanism. Valid options are: :scram,
- :mongodb_cr, :mongodb_x509, and :plain. (default on 3.0 is :scram, default
- on 2.4 and 2.6 is :plain)
- auth_mech: :scram
- The database or source to authenticate the user against. (default: admin)
- auth_source: admin
- Force a the driver cluster to behave in a certain manner instead of auto-
- discovering. Can be one of: :direct, :replica_set, :sharded. Set to :direct
- when connecting to hidden members of a replica set.
connect: :direct
- Changes the default time in seconds the server monitors refresh their status
- via ismaster commands. (default: 10)
- heartbeat_frequency: 10
- The time in seconds for selecting servers for a near read preference. (default: 5)
- local_threshold: 5
- The timeout in seconds for selecting a server for an operation. (default: 30)
- server_selection_timeout: 30
- The maximum number of connections in the connection pool. (default: 5)
max_pool_size: <%= ENV['MONGOPOOL'] || 20 %>
- The minimum number of connections in the connection pool. (default: 1)
- min_pool_size: 1
- The time to wait, in seconds, in the connection pool for a connection
- to be checked in before timing out. (default: 5)
- wait_queue_timeout: 5
- The time to wait to establish a connection before timing out, in seconds.
- (default: 5)
- connect_timeout: 5
- The timeout to wait to execute operations on a socket before raising an error.
- (default: 5)
- socket_timeout: 5
- The name of the replica set to connect to. Servers provided as seeds that do
- not belong to this replica set will be ignored.
- replica_set: name
- Whether to connect to the servers via ssl. (default: false)
- ssl: true
- The certificate file used to identify the connection against MongoDB.
- ssl_cert: /path/to/my.cert
- The private keyfile used to identify the connection against MongoDB.
- Note that even if the key is stored in the same file as the certificate,
- both need to be explicitly specified.
- ssl_key: /path/to/my.key
- A passphrase for the private key.
- ssl_key_pass_phrase: password
- Whether or not to do peer certification validation. (default: false)
- ssl_verify: true
- The file containing a set of concatenated certification authority certifications
- used to validate certs passed from the other end of the connection.
- ssl_ca_cert: /path/to/ca.cert
- Configure Mongoid specific options. (optional)
options: - Includes the root model name in json serialization. (default: false)
include_root_in_json: false
- Include the _type field in serialization. (default: false)
include_type_for_serialization: true
- Preload all models in development, needed when models use
- inheritance. (default: false)
- preload_models: false
- Raise an error when performing a #find and the document is not found.
- (default: true)
raise_not_found_error: false
- Raise an error when defining a scope with the same name as an
- existing method. (default: false)
- scope_overwrite_exception: false
- Use Active Support's time zone in conversions. (default: true)
- use_activesupport_time_zone: true
- Ensure all times are UTC in the app side. (default: false)
- use_utc: false