[
https://issues.apache.org/jira/browse/YUNIKORN-3366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dale Richardson updated YUNIKORN-3366:
--------------------------------------
Labels: newbie (was: )
> Instrumented-package tests leak core-service goroutines by not stopping the
> services they start
> -----------------------------------------------------------------------------------------------
>
> Key: YUNIKORN-3366
> URL: https://issues.apache.org/jira/browse/YUNIKORN-3366
> Project: Apache YuniKorn
> Issue Type: Bug
> Components: core - scheduler
> Reporter: Dale Richardson
> Priority: Major
> Labels: newbie
>
> Instrumented-package tests leak core-service goroutines by not stopping the
> services they start
> Description:
> Follow-up to YUNIKORN-3357 (PR #1124); burns down the "stoppable" leakcheck
> exemptions that are
> test hygiene rather than production defects:
> * scheduler.(*partitionManager).cleanRoot
> * scheduler.(*partitionManager).cleanExpiredApps
> * common/security.(*UserGroupCache).run
> * events.(*EventSystemImpl).StartServiceWithPublisher.func1 (the test-only
> half)
> These goroutines are all correctly stoppable in production —
> {{ClusterContext.Stop}} stops the two partition cleaners started by
> {{partitionManager.Run}}, {{UserGroupCache.Stop()}} closes the cleaner and
> resets the singleton (and {{ClusterContext.Stop}} calls it), and
> {{EventSystemImpl.Stop()}} stops the handler. The leaks are tests that
> construct these services (via {{events.Init()}}/{{StartService}}, a
> {{ClusterContext}}, or user resolution) and never call {{Stop()}}, so the
> goroutines outlive the test binary.
> Repro: remove the corresponding exemption in
> {{pkg/common/leakcheck/leakcheck.go}} and run the package, e.g.
> {code}
> go test ./pkg/scheduler/... ./pkg/common/security/... ./pkg/events/...
> {code}
> goleak's {{VerifyTestMain}} then fails the binary with the leaked stack.
> Proposed fix: have the affected tests {{defer <service>.Stop()}} after
> starting it, then delete the four exemptions. Can be split per-package if
> preferred (partition cleaners / UserGroupCache / event system).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]