You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Wilfred Spiegelenburg (Jira)" <ji...@apache.org> on 2020/07/10 12:20:00 UTC

[jira] [Commented] (YUNIKORN-272) Enable event cache in branch-0.9

    [ https://issues.apache.org/jira/browse/YUNIKORN-272?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17155425#comment-17155425 ] 

Wilfred Spiegelenburg commented on YUNIKORN-272:
------------------------------------------------

The change causes a race in the tests. I have attached a log of the race detected:  [^data_race.txt] The important part are these points, the failure:
{code:java}
--- FAIL: TestBasicSchedulerAutoAllocation (0.15s)
    testing.go:809: race detected during execution of test
{code}
And these parts of the stacktraces:
{code:java}
Previous write at 0x00c05a3096f0 by goroutine 17:
  github.com/apache/incubator-yunikorn-core/pkg/entrypoint.startAllServicesWithParameters()
...
      /home/travis/gopath/src/github.com/apache/incubator-yunikorn-core/pkg/scheduler/tests/scheduler_smoke_test.go:393 +0xdb
  testing.tRunner()
      /home/travis/.gimme/versions/go1.12.linux.amd64/src/testing/testing.go:865 +0x163
{code}
and for the reader:
{code:java}
Read at 0x00c05a3096f0 by goroutine 81:
  github.com/apache/incubator-yunikorn-core/pkg/events.(*EventCache).AddEvent()
      /home/travis/gopath/src/github.com/apache/incubator-yunikorn-core/pkg/events/event_cache.go:97 +0x85
  github.com/apache/incubator-yunikorn-core/pkg/scheduler.(*SchedulingApplication).tryAllocate()
{code}
The reader in go routine 81 was created in:
{code:java}
  github.com/apache/incubator-yunikorn-core/pkg/scheduler/tests.TestContainerStateUpdater()
      /home/travis/gopath/src/github.com/apache/incubator-yunikorn-core/pkg/scheduler/tests/scheduler_plugin_test.go:66 +0xdb
  testing.tRunner()
      /home/travis/.gimme/versions/go1.12.linux.amd64/src/testing/testing.go:865 +0x163
{code}
As you can see the tests are two completely different tests:
 * reader scheduler_plugin_test.go:66
 * writer scheduler_smoke_test.go:393

{{TestBasicSchedulerAutoAllocation}} is defined in the file {{scheduler_smoke_test.go}} go routine 81 should not exist anymore and we should have re-inited

We cannot currently perform a full shutdown of all the services that we are running in the core. Changing the test to not start all services works around this issue. I know this has been discussed before but I don't think we ever did a follow up.

I opened a [PR|https://github.com/yangwwei/incubator-yunikorn-core/pull/2] against your repo to add the change.

The travis build passed with the changes on top: https://travis-ci.com/yangwwei/incubator-yunikorn-core/builds/175146213

> Enable event cache in branch-0.9
> --------------------------------
>
>                 Key: YUNIKORN-272
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-272
>             Project: Apache YuniKorn
>          Issue Type: Sub-task
>          Components: core - cache
>            Reporter: Weiwei Yang
>            Assignee: Weiwei Yang
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: data_race.txt
>
>
> The flag needs to be true to enable this feature. Set this for branch-0.9.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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