Uploaded image for project: 'Apache YuniKorn'
  1. Apache YuniKorn
  2. YUNIKORN-342

Data race in QueueInfo#addChildQueue

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Resolved
    • None
    • 0.10
    • core - scheduler
    • None

    Description

      Found while developing YUNIKORN-332.
      Details:

      ==================
      WARNING: DATA RACE
      Write at 0x00c0039ac4b0 by goroutine 41:
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*QueueInfo).addChildQueue()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/queue_info.go:229 +0x469
        github.com/apache/incubator-yunikorn-core/pkg/cache.NewUnmanagedQueue()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/queue_info.go:115 +0x2fc
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*PartitionInfo).CreateQueues()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/partition_info.go:885 +0x560
        github.com/apache/incubator-yunikorn-core/pkg/scheduler/placement.(*AppPlacementManager).PlaceApplication()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/placement/placement.go:171 +0x103c
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*partitionSchedulingContext).addSchedulingApplication()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduling_partition.go:109 +0xae8
      2020-08-03T15:50:09.600+0200	DEBUG	scheduler/scheduler.go:230	enqueued event	{"eventType": "*schedulerevent.SchedulerApplicationsUpdateEvent", "event": {"AddedApplications":[{"ApplicationID":"application-sleep-0002","Partition":"[mycluster]default","QueueName":"root.test","SubmissionTime":1596462609600378000}],"RemovedApplications":null}, "currentQueueSize": 1}
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*ClusterSchedulingContext).addSchedulingApplication()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduling_context.go:114 +0x1a8
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*Scheduler).addNewApplication()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduler.go:209 +0x261
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*Scheduler).processApplicationUpdateEvent()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduler.go:447 +0x9d7
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*Scheduler).handleSchedulerEvent()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduler.go:596 +0x428
      
      Previous read at 0x00c0039ac4b0 by goroutine 39:
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*PartitionInfo).getQueue()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/partition_info.go:760 +0x12d
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*PartitionInfo).addNewApplication()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/partition_info.go:375 +0xc81
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*ClusterInfo).processApplicationUpdateFromRMUpdate()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/cluster_info.go:216 +0x6df
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*ClusterInfo).processRMUpdateEvent()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/cluster_info.go:444 +0x5e
      2020-08-03T15:50:09.601+0200	DEBUG	cache/partition_info.go:356	adding app to partition	{"appID": "application-sleep-0003", "queue": "root.test", "partitionName": "[mycluster]default"}
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*ClusterInfo).handleRMEvents()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/cluster_info.go:99 +0x366
        go.uber.org/zap/zapcore.(*CheckedEntry).Write()
            /Users/adamantal/go/pkg/mod/go.uber.org/zap@v1.13.0/zapcore/entry.go:216 +0x1e7
        go.uber.org/zap.(*Logger).Debug()
            /Users/adamantal/go/pkg/mod/go.uber.org/zap@v1.13.0/logger.go:179 +0x95
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.enqueueAndCheckFull()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduler.go:230 +0x453
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*Scheduler).HandleEvent()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduler.go:242 +0x64
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*ClusterInfo).processRMRegistrationEvent()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/cluster_info.go:469 +0x432
      2020-08-03T15:50:09.601+0200	INFO	cache/partition_info.go:379	app added to partition	{"appID": "application-sleep-0003", "partitionName": "[mycluster]default"}
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*ClusterInfo).handleRMEvents()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/cluster_info.go:101 +0x2f8
      
      Goroutine 41 (running) created at:
        github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*Scheduler).StartService()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/scheduler/scheduler.go:67 +0x9d
        github.com/apache/incubator-yunikorn-core/pkg/entrypoint.startAllServicesWithParameters()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/entrypoint/entrypoint.go:86 +0x61a
        github.com/apache/incubator-yunikorn-core/pkg/entrypoint.StartAllServices()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/entrypoint/entrypoint.go:43 +0x77
        main.main()
            /Users/adamantal/git/yunikorn/yunikorn-k8shim/pkg/shim/main.go:45 +0x48c
      
      Goroutine 39 (running) created at:
        github.com/apache/incubator-yunikorn-core/pkg/cache.(*ClusterInfo).StartService()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/cache/cluster_info.go:69 +0x96
        github.com/apache/incubator-yunikorn-core/pkg/entrypoint.startAllServicesWithParameters()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/entrypoint/entrypoint.go:85 +0x5a9
        github.com/apache/incubator-yunikorn-core/pkg/entrypoint.StartAllServices()
            /Users/adamantal/git/yunikorn/yunikorn-core/pkg/entrypoint/entrypoint.go:43 +0x77
        main.main()
            /Users/adamantal/git/yunikorn/yunikorn-k8shim/pkg/shim/main.go:45 +0x48c
      ==================
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              adam.antal Adam Antal
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: