{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64049","repository_url":"https://api.github.com/repos/kubernetes/kubernetes","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64049/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64049/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64049/events","html_url":"https://github.com/kubernetes/kubernetes/pull/64049","id":324511494,"number":64049,"title":"Fix TestSchedulerWithVolumeBinding to avoid setting predicate ordering.","user":{"login":"aveshagarwal","id":3596412,"avatar_url":"https://avatars0.githubusercontent.com/u/3596412?v=4","gravatar_id":"","url":"https://api.github.com/users/aveshagarwal","html_url":"https://github.com/aveshagarwal","followers_url":"https://api.github.com/users/aveshagarwal/followers","following_url":"https://api.github.com/users/aveshagarwal/following{/other_user}","gists_url":"https://api.github.com/users/aveshagarwal/gists{/gist_id}","starred_url":"https://api.github.com/users/aveshagarwal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aveshagarwal/subscriptions","organizations_url":"https://api.github.com/users/aveshagarwal/orgs","repos_url":"https://api.github.com/users/aveshagarwal/repos","events_url":"https://api.github.com/users/aveshagarwal/events{/privacy}","received_events_url":"https://api.github.com/users/aveshagarwal/received_events","type":"User","site_admin":false},"labels":[{"id":414883982,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/approved","name":"approved","color":"0ffa16","default":false},{"id":477397086,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":105146071,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/kind/bug","name":"kind/bug","color":"e11d21","default":false},{"id":349530249,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/release-note-none","name":"release-note-none","color":"c2e0c6","default":false},{"id":125550211,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/sig/scheduling","name":"sig/scheduling","color":"d2b48c","default":false},{"id":253450793,"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XS","name":"size/XS","color":"009900","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2018-05-18T18:36:01Z","updated_at":"2018-05-19T09:09:10Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/64049","html_url":"https://github.com/kubernetes/kubernetes/pull/64049","diff_url":"https://github.com/kubernetes/kubernetes/pull/64049.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/64049.patch"},"body":"It is causing data race condition as predicate ordering is changing global\r\nvariable `predicatesOrdering`. Infact this test does not require any special\r\npredicate order and should work on default predicate ordering as far as\r\nVolumeScheduling feature is enabled.\r\n\r\nSee these logs:\r\n\r\n```\r\n==================\r\n==================\r\nWARNING: DATA RACE\r\nRead at 0x00c420894180 by goroutine 156:\r\n  k8s.io/kubernetes/pkg/scheduler/core.podFitsOnNode()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go:503 +0xbb\r\n  k8s.io/kubernetes/pkg/scheduler/core.(*genericScheduler).findNodesThatFit.func1()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go:353 +0x2f0\r\n  k8s.io/kubernetes/vendor/k8s.io/client-go/util/workqueue.Parallelize.func1()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/vendor/k8s.io/client-go/util/workqueue/parallelizer.go:47 +0xa3\r\n\r\nPrevious write at 0x00c420894180 by goroutine 186:\r\n  k8s.io/kubernetes/pkg/scheduler.TestSchedulerWithVolumeBinding()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/scheduler_test.go:663 +0x71\r\n  testing.tRunner()\r\n      /usr/lib/golang/src/testing/testing.go:777 +0x16d\r\n\r\nGoroutine 156 (running) created at:\r\n  k8s.io/kubernetes/vendor/k8s.io/client-go/util/workqueue.Parallelize()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/vendor/k8s.io/client-go/util/workqueue/parallelizer.go:43 +0x139\r\n  k8s.io/kubernetes/pkg/scheduler/core.(*genericScheduler).findNodesThatFit()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go:378 +0xe8a\r\n  k8s.io/kubernetes/pkg/scheduler/core.(*genericScheduler).Schedule()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/core/generic_scheduler.go:131 +0x385\r\n  k8s.io/kubernetes/pkg/scheduler.(*Scheduler).schedule()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/scheduler.go:192 +0xcd\r\n  k8s.io/kubernetes/pkg/scheduler.(*Scheduler).scheduleOne()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/scheduler.go:447 +0x598\r\n  k8s.io/kubernetes/pkg/scheduler.(*Scheduler).(k8s.io/kubernetes/pkg/scheduler.scheduleOne)-fm()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/pkg/scheduler/scheduler.go:182 +0x41\r\n  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil.func1()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:133 +0x61\r\n  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.JitterUntil()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:134 +0xcd\r\n  k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait.Until()\r\n      /home/avagarwa/upstream-code/gocode/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/wait/wait.go:88 +0x5a\r\n\r\nGoroutine 186 (running) created at:\r\n  testing.(*T).Run()\r\n      /usr/lib/golang/src/testing/testing.go:824 +0x564\r\n  testing.runTests.func1()\r\n      /usr/lib/golang/src/testing/testing.go:1063 +0xa4\r\n  testing.tRunner()\r\n      /usr/lib/golang/src/testing/testing.go:777 +0x16d\r\n  testing.runTests()\r\n      /usr/lib/golang/src/testing/testing.go:1061 +0x4e1\r\n  testing.(*M).Run()\r\n      /usr/lib/golang/src/testing/testing.go:978 +0x2cd\r\n  main.main()\r\n      _testmain.go:52 +0x22a\r\n==================\r\n--- FAIL: TestSchedulerWithVolumeBinding (18.04s)\r\n\ttesting.go:730: race detected during execution of test\r\nFAIL\r\n```\r\n\r\nIt is pretty easy to reproduce this race by following these steps:\r\n\r\n```\r\ncd pkg/scheduler\r\ngo test -c -race\r\nstress -p 100 ./scheduler.test\r\n```\r\n\r\nPredicate ordering to this unit test was added here: https://github.com/kubernetes/kubernetes/pull/57168\r\nSince the whole scheduler instance uses just one ordering at time, not sure what is the advantage. \r\n\r\n@kubernetes/sig-scheduling-bugs @bsalamat @k82cn @frobware @smarterclayton @sjenning \r\n\r\n```release-note\r\nNone\r\n```"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/390391499","html_url":"https://github.com/kubernetes/kubernetes/pull/64049#issuecomment-390391499","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/64049","id":390391499,"user":{"login":"k8s-ci-robot","id":20407524,"avatar_url":"https://avatars0.githubusercontent.com/u/20407524?v=4","gravatar_id":"","url":"https://api.github.com/users/k8s-ci-robot","html_url":"https://github.com/k8s-ci-robot","followers_url":"https://api.github.com/users/k8s-ci-robot/followers","following_url":"https://api.github.com/users/k8s-ci-robot/following{/other_user}","gists_url":"https://api.github.com/users/k8s-ci-robot/gists{/gist_id}","starred_url":"https://api.github.com/users/k8s-ci-robot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k8s-ci-robot/subscriptions","organizations_url":"https://api.github.com/users/k8s-ci-robot/orgs","repos_url":"https://api.github.com/users/k8s-ci-robot/repos","events_url":"https://api.github.com/users/k8s-ci-robot/events{/privacy}","received_events_url":"https://api.github.com/users/k8s-ci-robot/received_events","type":"User","site_admin":false},"created_at":"2018-05-19T09:09:10Z","updated_at":"2018-05-19T09:09:10Z","author_association":"COLLABORATOR","body":"@aveshagarwal: The following test **failed**, say `/retest` to rerun them all:\n\nTest name | Commit | Details | Rerun command\n--- | --- | --- | ---\npull-kubernetes-e2e-gce | ea057eb9b52e375fff857a04a787dc4c30cfa697 | [link](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/pr-logs/pull/64049/pull-kubernetes-e2e-gce/36548/) | `/test pull-kubernetes-e2e-gce`\n\n[Full PR test history](https://k8s-gubernator.appspot.com/pr/64049). [Your PR dashboard](https://k8s-gubernator.appspot.com/pr/aveshagarwal). Please help us cut down on flakes by [linking to](https://git.k8s.io/community/contributors/devel/flaky-tests.md#filing-issues-for-flaky-tests) an [open issue](https://github.com/kubernetes/kubernetes/issues?q=is:issue+is:open) when you hit one in your PR.\n\n<details>\n\nInstructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).\n</details>\n<!-- test report -->"}}
{"actor":{"display_login":"k8s-ci-robot"}}