You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Craig Condit (Jira)" <ji...@apache.org> on 2022/12/02 17:18:00 UTC

[jira] [Resolved] (YUNIKORN-1442) Data race in TestRejectApplications

     [ https://issues.apache.org/jira/browse/YUNIKORN-1442?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Craig Condit resolved YUNIKORN-1442.
------------------------------------
     Fix Version/s: 1.2.0
    Target Version: 1.2.0
        Resolution: Fixed

Merged to master.

> Data race in TestRejectApplications
> -----------------------------------
>
>                 Key: YUNIKORN-1442
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-1442
>             Project: Apache YuniKorn
>          Issue Type: Bug
>          Components: test - unit
>            Reporter: Peter Bacsko
>            Assignee: Peter Bacsko
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.2.0
>
>
> Found the following data race when running unit tests locally for shim:
> {noformat}
> ==================
> WARNING: DATA RACE
> Read at 0x00c005593dd0 by goroutine 98:
>   runtime.mapiterinit()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/runtime/map.go:815 +0x0
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*PlaceholderManager).cleanUp()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/placeholder_manager.go:117 +0x246
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*Application).handleFailApplicationEvent.func1()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/application.go:584 +0x35
> Previous write at 0x00c005593dd0 by goroutine 75:
>   runtime.mapdelete_faststr()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/runtime/map_faststr.go:301 +0x0
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*Application).removeTask()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/application.go:250 +0x16c
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*Context).RemoveTask()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/context.go:742 +0x2a9
>   github.com/apache/yunikorn-k8shim/pkg/shim.TestRejectApplications()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/shim/scheduler_test.go:138 +0x66f
>   testing.tRunner()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1439 +0x213
>   testing.(*T).Run.func1()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1486 +0x47
> Goroutine 98 (running) created at:
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*Application).handleFailApplicationEvent()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/application.go:583 +0xca
>   github.com/apache/yunikorn-k8shim/pkg/cache.newAppState.func7()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/application_state.go:547 +0x2e6
>   github.com/looplab/fsm.(*FSM).afterEventCallbacks()
>       /home/runner/go/pkg/mod/github.com/looplab/fsm@v0.1.0/fsm.go:414 +0xc7
>   github.com/looplab/fsm.(*FSM).Event.func1()
>       /home/runner/go/pkg/mod/github.com/looplab/fsm@v0.1.0/fsm.go:309 +0xb7
>   github.com/looplab/fsm.transitionerStruct.transition()
>       /home/runner/go/pkg/mod/github.com/looplab/fsm@v0.1.0/fsm.go:354 +0x99
>   github.com/looplab/fsm.(*transitionerStruct).transition()
>       <autogenerated>:1 +0x29
>   github.com/looplab/fsm.(*FSM).doTransition()
>       /home/runner/go/pkg/mod/github.com/looplab/fsm@v0.1.0/fsm.go:339 +0x701
>   github.com/looplab/fsm.(*FSM).Event()
>       /home/runner/go/pkg/mod/github.com/looplab/fsm@v0.1.0/fsm.go:321 +0x6da
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*Application).handle()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/application.go:104 +0x249
>   github.com/apache/yunikorn-k8shim/pkg/cache.(*Context).ApplicationEventHandler.func1()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/cache/context.go:910 +0xfb
>   github.com/apache/yunikorn-k8shim/pkg/dispatcher.Start.func1()
>       /home/runner/work/yunikorn-k8shim/yunikorn-k8shim/pkg/dispatcher/dispatcher.go:197 +0x2eb
> Goroutine 75 (running) created at:
>   testing.(*T).Run()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1486 +0x724
>   testing.runTests.func1()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1839 +0x99
>   testing.tRunner()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1439 +0x213
>   testing.runTests()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1837 +0x7e4
>   testing.(*M).Run()
>       /opt/hostedtoolcache/go/1.18.6/x64/src/testing/testing.go:1719 +0xa71
>   main.main()
>       _testmain.go:103 +0x3a9
> ==================
> {noformat}
> We perform an unsafe access to {{app.taskMap}} in {{PlaceholderManager.cleanUp()}}. We need to call {{Application.GetPlaceholderTasks()}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org