Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-24555

Pipeline Manager potential race conditions

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Major
    • 5.0.0
    • 5.0.0
    • XDCR
    • Untriaged
    • No

    Description

      These are the data races that are found from running the XDCR_acceptance test.
      The code changes should correspond to a custom gerrit build of:
      git fetch http://review.couchbase.org/goxdcr refs/changes/68/77568/25 && git checkout FETCH_HEAD

      ==================
      WARNING: DATA RACE
      Read at 0x00c4200840b0 by goroutine 113:
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).State()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:579 +0x44
        github.com/couchbase/goxdcr/pipeline_svc.(*StatisticsManager).updateStatsOnce()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/statistics_manager.go:322 +0x76
        github.com/couchbase/goxdcr/pipeline_svc.(*StatisticsManager).updateStats()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/statistics_manager.go:288 +0x76b
       
      Previous write at 0x00c4200840b0 by goroutine 65:
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).SetState()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:642 +0x11a
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Stop()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:357 +0x1dd
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).StopPipelineInner()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:432 +0x1cb
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:781 +0x330
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).run()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:731 +0x340
       
      Goroutine 113 (running) created at:
        github.com/couchbase/goxdcr/pipeline_svc.(*StatisticsManager).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/statistics_manager.go:716 +0x4f2
        github.com/couchbase/goxdcr/pipeline_ctx.(*PipelineRuntimeCtx).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_ctx/pipeline_runtimeCtx.go:70 +0x1f3
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:207 +0xaff
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).StartPipeline()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:348 +0x4f6
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:804 +0xea2
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).run()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:714 +0xdf
       
      Goroutine 65 (running) created at:
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).launchUpdater()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:518 +0x250
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).GetOrCreateReplicationStatus()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:552 +0x435
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).Update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:568 +0xf8
        github.com/couchbase/goxdcr/replication_manager.(*ReplicationSpecChangeListener).launchPipelineUpdate()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/replication_manager/metakv_change_listener.go:215 +0x74
      ==================
      

      ==================
      WARNING: DATA RACE
      Write at 0x00c42032a310 by goroutine 143:
      2017-05-25T10:21:57.210-07:00 INFO GOXDCR.PipelineMgr: Replication Status=name={4e10e68c87d10130ea104a6d9967b901/default/default}, errors={[]}, progress={Pipeline has been stopped}
       
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Stop.func1()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:389 +0x92
       
      Previous read at 0x00c42032a310 by goroutine 65:
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Stop()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:401 +0xb63
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).StopPipelineInner()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:432 +0x1cb
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:781 +0x330
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).run()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:731 +0x340
       
      Goroutine 143 (running) created at:
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Stop()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:394 +0x9a5
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).StopPipelineInner()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:432 +0x1cb
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:781 +0x330
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).run()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:731 +0x340
       
      Goroutine 65 (running) created at:
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).launchUpdater()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:518 +0x250
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).GetOrCreateReplicationStatus()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:552 +0x435
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).Update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:568 +0xf8
        github.com/couchbase/goxdcr/replication_manager.(*ReplicationSpecChangeListener).launchPipelineUpdate()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/replication_manager/metakv_change_listener.go:215 +0x74
      ==================
      

      ==================
      WARNING: DATA RACE
      Read at 0x00c420084180 by goroutine 166:
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).State()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:579 +0x44
        github.com/couchbase/goxdcr/pipeline_svc.(*StatisticsManager).updateStatsOnce()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/statistics_manager.go:322 +0x76
        github.com/couchbase/goxdcr/pipeline_svc.(*StatisticsManager).updateStats()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/statistics_manager.go:288 +0x76b
       
      Previous write at 0x00c420084180 by goroutine 65:
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).SetState()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:642 +0x11a
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:272 +0x1507
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).StartPipeline()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:348 +0x4f6
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:804 +0xea2
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).run()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:731 +0x340
       
      Goroutine 166 (running) created at:
        github.com/couchbase/goxdcr/pipeline_svc.(*StatisticsManager).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_svc/statistics_manager.go:716 +0x4f2
        github.com/couchbase/goxdcr/pipeline_ctx.(*PipelineRuntimeCtx).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_ctx/pipeline_runtimeCtx.go:70 +0x1f3
        github.com/couchbase/goxdcr/pipeline.(*GenericPipeline).Start()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline/generic_pipeline.go:207 +0xaff
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).StartPipeline()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:348 +0x4f6
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:804 +0xea2
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineUpdater).run()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:731 +0x340
       
      Goroutine 65 (running) created at:
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).launchUpdater()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:518 +0x250
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).GetOrCreateReplicationStatus()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:552 +0x435
        github.com/couchbase/goxdcr/pipeline_manager.(*PipelineManager).Update()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/pipeline_manager/pipeline_manager.go:568 +0xf8
        github.com/couchbase/goxdcr/replication_manager.(*ReplicationSpecChangeListener).launchPipelineUpdate()
            /Users/neil.huang/source/couchbase/goproj/src/github.com/couchbase/goxdcr/replication_manager/metakv_change_listener.go:215 +0x74
      ==================
      

      Attachments

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

        Activity

          People

            arunkumar Arunkumar Senthilnathan (Inactive)
            neil.huang Neil Huang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              PagerDuty