Uploaded image for project: 'Couchbase .NET client library'
  1. Couchbase .NET client library
  2. NCBC-1785

MultiplexingConnection throws ObjectDisposedException during Send

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.7.1
    • None
    • None
    • 1

    Description

      The following exception is seen in logs during CI testing:

      2018-09-28 01:55:52,537 [14] WARN Couchbase.IO.ConnectionBase - Handling disconnect for connection 573935a6-31ca-4991-8203-4c7e7cb17801: System.ObjectDisposedException: Cannot access a disposed object.
      Object name: 'System.Net.Sockets.Socket'.
         at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags, SocketError& errorCode)
         at System.Net.Sockets.Socket.Send(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
         at Couchbase.IO.MultiplexingConnection.Send(Byte[] request)
      

      It may be related to ConfigMonitor, as the same thread had the log entries directly above it:

      2018-09-28 01:55:52,537 [14] DEBUG Couchbase.Configuration.Server.Monitoring.ConfigMonitor - Checking configs...
      2018-09-28 01:55:52,537 [14] DEBUG Couchbase.Configuration.Server.Monitoring.ConfigMonitor - Using index 0 - server Couchbase.Core.Server
      2018-09-28 01:55:52,537 [14] DEBUG Couchbase.Core.Server - Sending Config with key  using server 172.23.120.17:11210
      

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          jmorris Jeff Morris added a comment - Reverted http://review.couchbase.org/#/c/99796/
          jmorris Jeff Morris added a comment -

          This is a side effect of allowing more than one thread to use the socket - by design in MUX - the reading thread determined that the connection had been terminated or otherwise failed and a worker thread was sending another operation concurrently. In this case the operation being sent will trigger this exception and it will be logged and prepared for retry if applicable on a new connection or a different node depending upon the situation.

          jmorris Jeff Morris added a comment - This is a side effect of allowing more than one thread to use the socket - by design in MUX - the reading thread determined that the connection had been terminated or otherwise failed and a worker thread was sending another operation concurrently. In this case the operation being sent will trigger this exception and it will be logged and prepared for retry if applicable on a new connection or a different node depending upon the situation.

          People

            jmorris Jeff Morris
            mike.goldsmith Michael Goldsmith
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty