MongoDB.Driver.MongoConnectionException


#1

I have…

  • [x ] Checked the logs and have provided uploaded a log file and provided a link because I found something suspicious there.

I’m submitting a…

  • [ ] Regression (a behavior that stopped working in a new release)
  • [x ] Bug report
  • [ x] Performance issue
  • [ ] Documentation issue or request

Current behavior

After the application was idle for some time and we try to access it again (usually in the morning) the App is stuck at the loading screen

Expected behavior

The App starts!

Minimal reproduction of the problem

Environment

  • [ x] Self hosted with docker (in azure)
  • [ ] Self hosted with IIS
  • [ ] Self hosted with other version
  • [ ] Cloud version

Version: 3.0.0

Browser:

  • [x ] Chrome (desktop)
  • [ ] Chrome (Android)
  • [ ] Chrome (iOS)
  • [ ] Firefox
  • [ ] Safari (desktop)
  • [ ] Safari (iOS)
  • [ ] IE
  • [ ] Edge

Others:
We can see the log file full with the following error

{
“logLevel”: “Error”,
“message”: “ReminderTable.ReadRows failed. Exception=An exception occurred while receiving a message from the server.”,
“eventId”: {
“id”: 900400
},
“exception”: {
“type”: “MongoDB.Driver.MongoConnectionException”,
“message”: “An exception occurred while receiving a message from the server.”,
“stackTrace”: " at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync()\n at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveBufferAsync(Int32 responseTo, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Connections.BinaryConnection.ReceiveMessageAsync(Int32 responseTo, IMessageEncoderSelector encoderSelector, MessageEncoderSettings messageEncoderSettings, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.WireProtocol.CommandUsingCommandMessageWireProtocol1.ExecuteAsync(IConnection connection, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Servers.Server.ServerChannel.ExecuteProtocolAsync[TResult](IWireProtocol1 protocol, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.CommandOperationBase1.ExecuteProtocolAsync(IChannelSource channelSource, ICoreSessionHandle session, ReadPreference readPreference, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.ReadCommandOperation1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.FindCommandOperation1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken)\n at MongoDB.Driver.Core.Operations.FindOperation1.ExecuteAsync(IReadBinding binding, CancellationToken cancellationToken)\n at MongoDB.Driver.OperationExecutor.ExecuteReadOperationAsync[TResult](IReadBinding binding, IReadOperation1 operation, CancellationToken cancellationToken)\n at MongoDB.Driver.MongoCollectionImpl1.ExecuteReadOperationAsync[TResult](IClientSessionHandle session, IReadOperation1 operation, ReadPreference readPreference, CancellationToken cancellationToken)\n at MongoDB.Driver.MongoCollectionImpl1.UsingImplicitSessionAsync[TResult](Func2 funcAsync, CancellationToken cancellationToken)\n at MongoDB.Driver.IAsyncCursorSourceExtensions.ToListAsync[TDocument](IAsyncCursorSource1 source, CancellationToken cancellationToken)\n at Orleans.Providers.MongoDB.Reminders.Store.MongoReminderCollection.ReadRowsInRange(UInt32 beginHash, UInt32 endHash)\n at Orleans.Providers.MongoDB.Reminders.MongoReminderTable.DoAndLog[T](String actionName, Func`1 action)
},
“app”: {
“name”: “Squidex”,
“version”: “3.0.0.0”,
“sessionId”: “b0ab4bc6-88de-491a-a2b4-7fda222b0776”
},
“timestamp”: “2019-07-31T08:06:10Z”,
“category”: “Orleans.Providers.MongoDB.Reminders.MongoReminderTable”
}


#2

This is usually a connection not related to Squidex itself. It just cannot connect to MongoDB anymore.


#3

Some of the data is usually still sent. The exception only occurs when reading from the Orleans Reminder Table and it seems like squidex is trying to perform the same operation again and again making the complete system unresponsive. Would it help to attach a log file?

Edit: Another strange thing is, that while squidex is throwing this exception I am able to connect to the database using robo 3t without a problem.


#4

Can you send me the settings for your mongo connection via PM?


#5

This is not possible, because there is customer data stored in the database.


#6

You could obfuscate sensitive information.