Uploaded image for project: 'Couchbase Go SDK'
  1. Couchbase Go SDK
  2. GOCBC-1186

Deadlock closing cluster

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 2.3.4
    • None
    • None
    • None
    • 1

    Description

      *(Cluster).Close(...) calls meter.close()
      https://github.com/couchbase/gocb/blob/2f4a3976439522555613db93a66426872000d7a7/cluster.go#L415

      *(LoggingMeter).close() attempts to send something to unbuffered channel
      https://github.com/couchbase/gocb/blob/2f4a3976439522555613db93a66426872000d7a7/logging_meter.go#L181

      Send blocks until *(LoggingMeter) loggerRoutine() reaches select statement
      https://github.com/couchbase/gocb/blob/2f4a3976439522555613db93a66426872000d7a7/logging_meter.go#L97

      Select statement may be unreachable in case of (link below)
      https://github.com/couchbase/gocb/blob/2f4a3976439522555613db93a66426872000d7a7/logging_meter.go#L105

      in practice this case happens too often

      Attachments

        For Gerrit Dashboard: GOCBC-1186
        # Subject Branch Project Status CR V

        Activity

          People

            charles.dixon Charles Dixon
            fxrlv Alexander
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty