You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@yunikorn.apache.org by GitBox <gi...@apache.org> on 2021/03/17 15:20:49 UTC

[GitHub] [incubator-yunikorn-core] kingamarton opened a new pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

kingamarton opened a new pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260


   With this fix a new state is introduced: Failing state. Also, Waiting state is renamed to Completing.
   When we cleanup the placeholders, before moving the application into the terminating state (Completed or Failed)
   we wait for the shim to release the allocations first.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] kingamarton commented on a change in pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
kingamarton commented on a change in pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260#discussion_r596917982



##########
File path: pkg/scheduler/objects/application.go
##########
@@ -1303,3 +1281,52 @@ func (sa *Application) notifyRMAllocationAskReleased(rmID string, released []*Al
 	}
 	sa.rmEventHandler.HandleEvent(releaseEvent)
 }
+
+func (sa *Application) failAppIfPossible() {
+	if sa.isApplicationEmpty(false) {
+		// we need to run this in a different go routine to avoid deadlock in sm
+		// nolint: errcheck
+		go sa.HandleApplicationEvent(FailApplication)
+	}
+}
+
+func (sa *Application) isApplicationEmpty(skipPlaceholders bool) bool {
+	if skipPlaceholders {
+		return resources.IsZero(sa.pending) && resources.IsZero(sa.allocatedResource)
+	}
+	return resources.IsZero(sa.pending) && resources.IsZero(sa.allocatedResource) && resources.IsZero(sa.allocatedPlaceholder)
+}
+
+// lock free call, this should be called when holding a lock on the application object
+func (sa *Application) handleStateChange() {

Review comment:
       I made the changes we discussed about.
   I also kept the `func (sa *Application) failAppIfPossible()` function, because I checked the code and when there is a partition removed, we want to fail the application as well, and in this case we might have no allocations, to trigger the transition to Failed state.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] codecov[bot] edited a comment on pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
codecov[bot] edited a comment on pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260#issuecomment-801173024


   # [Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=h1) Report
   > Merging [#260](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=desc) (16c08d7) into [master](https://codecov.io/gh/apache/incubator-yunikorn-core/commit/5a1c19e280f66d6cb4fc206a675116260d6f2ff1?el=desc) (5a1c19e) will **increase** coverage by `1.38%`.
   > The diff coverage is `67.66%`.
   
   > :exclamation: Current head 16c08d7 differs from pull request most recent head ba84ebf. Consider uploading reports for the commit ba84ebf to get more accurate results
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/graphs/tree.svg?width=650&height=150&src=pr&token=SB9NrIi3Hy)](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #260      +/-   ##
   ==========================================
   + Coverage   63.46%   64.84%   +1.38%     
   ==========================================
     Files          60       60              
     Lines        5220     5485     +265     
   ==========================================
   + Hits         3313     3557     +244     
   - Misses       1747     1760      +13     
   - Partials      160      168       +8     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [pkg/scheduler/context.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9jb250ZXh0Lmdv) | `5.78% <0.00%> (-0.49%)` | :arrow_down: |
   | [pkg/scheduler/nodes\_usage\_monitor.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9ub2Rlc191c2FnZV9tb25pdG9yLmdv) | `0.00% <0.00%> (ø)` | |
   | [pkg/scheduler/objects/allocation.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL2FsbG9jYXRpb24uZ28=) | `100.00% <ø> (ø)` | |
   | [pkg/scheduler/partition\_manager.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9wYXJ0aXRpb25fbWFuYWdlci5nbw==) | `20.00% <50.00%> (ø)` | |
   | [pkg/scheduler/objects/queue.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL3F1ZXVlLmdv) | `69.18% <63.63%> (-0.27%)` | :arrow_down: |
   | [pkg/scheduler/objects/application.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL2FwcGxpY2F0aW9uLmdv) | `55.79% <65.07%> (+6.88%)` | :arrow_up: |
   | [pkg/scheduler/objects/node.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL25vZGUuZ28=) | `81.98% <75.00%> (+0.16%)` | :arrow_up: |
   | [pkg/scheduler/partition.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9wYXJ0aXRpb24uZ28=) | `72.53% <82.95%> (+6.49%)` | :arrow_up: |
   | [pkg/webservice/handlers.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3dlYnNlcnZpY2UvaGFuZGxlcnMuZ28=) | `57.00% <92.00%> (+2.86%)` | :arrow_up: |
   | [pkg/common/resources/resources.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL2NvbW1vbi9yZXNvdXJjZXMvcmVzb3VyY2VzLmdv) | `96.22% <94.28%> (+0.19%)` | :arrow_up: |
   | ... and [5 more](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=footer). Last update [4dda217...ba84ebf](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] codecov[bot] commented on pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
codecov[bot] commented on pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260#issuecomment-801173024


   # [Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=h1) Report
   > Merging [#260](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=desc) (16c08d7) into [master](https://codecov.io/gh/apache/incubator-yunikorn-core/commit/5a1c19e280f66d6cb4fc206a675116260d6f2ff1?el=desc) (5a1c19e) will **increase** coverage by `1.38%`.
   > The diff coverage is `67.66%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/graphs/tree.svg?width=650&height=150&src=pr&token=SB9NrIi3Hy)](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #260      +/-   ##
   ==========================================
   + Coverage   63.46%   64.84%   +1.38%     
   ==========================================
     Files          60       60              
     Lines        5220     5485     +265     
   ==========================================
   + Hits         3313     3557     +244     
   - Misses       1747     1760      +13     
   - Partials      160      168       +8     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [pkg/scheduler/context.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9jb250ZXh0Lmdv) | `5.78% <0.00%> (-0.49%)` | :arrow_down: |
   | [pkg/scheduler/nodes\_usage\_monitor.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9ub2Rlc191c2FnZV9tb25pdG9yLmdv) | `0.00% <0.00%> (ø)` | |
   | [pkg/scheduler/objects/allocation.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL2FsbG9jYXRpb24uZ28=) | `100.00% <ø> (ø)` | |
   | [pkg/scheduler/partition\_manager.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9wYXJ0aXRpb25fbWFuYWdlci5nbw==) | `20.00% <50.00%> (ø)` | |
   | [pkg/scheduler/objects/queue.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL3F1ZXVlLmdv) | `69.18% <63.63%> (-0.27%)` | :arrow_down: |
   | [pkg/scheduler/objects/application.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL2FwcGxpY2F0aW9uLmdv) | `55.79% <65.07%> (+6.88%)` | :arrow_up: |
   | [pkg/scheduler/objects/node.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL25vZGUuZ28=) | `81.98% <75.00%> (+0.16%)` | :arrow_up: |
   | [pkg/scheduler/partition.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9wYXJ0aXRpb24uZ28=) | `72.53% <82.95%> (+6.49%)` | :arrow_up: |
   | [pkg/webservice/handlers.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3dlYnNlcnZpY2UvaGFuZGxlcnMuZ28=) | `57.00% <92.00%> (+2.86%)` | :arrow_up: |
   | [pkg/common/resources/resources.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL2NvbW1vbi9yZXNvdXJjZXMvcmVzb3VyY2VzLmdv) | `96.22% <94.28%> (+0.19%)` | :arrow_up: |
   | ... and [5 more](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=footer). Last update [4dda217...16c08d7](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] yangwwei merged pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
yangwwei merged pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] wilfred-s commented on a change in pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
wilfred-s commented on a change in pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260#discussion_r596645108



##########
File path: pkg/scheduler/objects/application_state_test.go
##########
@@ -39,10 +42,11 @@ func TestAcceptStateTransition(t *testing.T) {
 	assert.Assert(t, err != nil, "error expected accepted to rejected")
 	assert.Equal(t, app.CurrentState(), Accepted.String())
 
-	// accepted to killed
+	// accepted to failed
 	err = app.HandleApplicationEvent(FailApplication)
 	assert.NilError(t, err, "no error expected accepted to killed")

Review comment:
       message should be failed

##########
File path: pkg/webservice/handlers_test.go
##########
@@ -690,9 +692,9 @@ func TestPartitions(t *testing.T) {
 	assert.Assert(t, err, "no error expected new to accepted")
 
 	// app4: accepted to wait
-	err = app4.HandleApplicationEvent(objects.WaitApplication)
+	err = app4.HandleApplicationEvent(objects.CompleteApplication)

Review comment:
       We have `Application.SetState()` instead of moving from state to state we can just set whatever we want/need. Simplifies this codes and we're not dependent on the state ordering. 

##########
File path: pkg/scheduler/objects/application_state_test.go
##########
@@ -87,7 +91,8 @@ func TestStartStateTransition(t *testing.T) {
 	// start to killed
 	err = appInfo.HandleApplicationEvent(FailApplication)
 	assert.NilError(t, err, "no error expected starting to killed")

Review comment:
       comment and message should be updated to failed
   multiple references to killed left, not tagged all of them

##########
File path: pkg/scheduler/objects/application.go
##########
@@ -1303,3 +1281,52 @@ func (sa *Application) notifyRMAllocationAskReleased(rmID string, released []*Al
 	}
 	sa.rmEventHandler.HandleEvent(releaseEvent)
 }
+
+func (sa *Application) failAppIfPossible() {
+	if sa.isApplicationEmpty(false) {
+		// we need to run this in a different go routine to avoid deadlock in sm
+		// nolint: errcheck
+		go sa.HandleApplicationEvent(FailApplication)
+	}
+}
+
+func (sa *Application) isApplicationEmpty(skipPlaceholders bool) bool {
+	if skipPlaceholders {
+		return resources.IsZero(sa.pending) && resources.IsZero(sa.allocatedResource)
+	}
+	return resources.IsZero(sa.pending) && resources.IsZero(sa.allocatedResource) && resources.IsZero(sa.allocatedPlaceholder)
+}
+
+// lock free call, this should be called when holding a lock on the application object
+func (sa *Application) handleStateChange() {

Review comment:
       This looks really complex. We have discussed this off-line and  come to a nicer solution.
   Please update with the discussed changes.

##########
File path: pkg/scheduler/objects/application_state.go
##########
@@ -148,6 +152,9 @@ func NewAppState() *fsm.FSM {
 				app.executeTerminatedCallback()
 				app.clearPlaceholderTimer()
 			},
+			fmt.Sprintf("enter_%s", Failing.String()): func(event *fsm.Event) {
+				event.Args[0].(*Application).failAppIfPossible()
+			},
 			fmt.Sprintf("enter_%s", Failed.String()): func(event *fsm.Event) {
 				app := setTimer(completedTimeout, event, ExpireApplication)

Review comment:
       rename to `terminatedTimeout` or something like that as it is not just used for completed but also failed.

##########
File path: pkg/scheduler/objects/application_state.go
##########
@@ -127,7 +131,7 @@ func NewAppState() *fsm.FSM {
 			fmt.Sprintf("enter_%s", Starting.String()): func(event *fsm.Event) {
 				setTimer(startingTimeout, event, RunApplication)
 			},
-			fmt.Sprintf("enter_%s", Waiting.String()): func(event *fsm.Event) {
+			fmt.Sprintf("enter_%s", Completing.String()): func(event *fsm.Event) {
 				setTimer(waitingTimeout, event, CompleteApplication)

Review comment:
       rename to completingTimeout (also in the application)




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] yangwwei commented on pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
yangwwei commented on pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260#issuecomment-802326981


   Thanks for addressing the review comments. LGTM, I'll merge this.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [incubator-yunikorn-core] codecov[bot] edited a comment on pull request #260: [YUNIKORN-574] Wait for placeholder cleanup

Posted by GitBox <gi...@apache.org>.
codecov[bot] edited a comment on pull request #260:
URL: https://github.com/apache/incubator-yunikorn-core/pull/260#issuecomment-801173024


   # [Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=h1) Report
   > Merging [#260](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=desc) (ba84ebf) into [master](https://codecov.io/gh/apache/incubator-yunikorn-core/commit/5a1c19e280f66d6cb4fc206a675116260d6f2ff1?el=desc) (5a1c19e) will **increase** coverage by `1.30%`.
   > The diff coverage is `67.17%`.
   
   [![Impacted file tree graph](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/graphs/tree.svg?width=650&height=150&src=pr&token=SB9NrIi3Hy)](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=tree)
   
   ```diff
   @@            Coverage Diff             @@
   ##           master     #260      +/-   ##
   ==========================================
   + Coverage   63.46%   64.77%   +1.30%     
   ==========================================
     Files          60       60              
     Lines        5220     5479     +259     
   ==========================================
   + Hits         3313     3549     +236     
   - Misses       1747     1761      +14     
   - Partials      160      169       +9     
   ```
   
   
   | [Impacted Files](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=tree) | Coverage Δ | |
   |---|---|---|
   | [pkg/scheduler/context.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9jb250ZXh0Lmdv) | `5.78% <0.00%> (-0.49%)` | :arrow_down: |
   | [pkg/scheduler/nodes\_usage\_monitor.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9ub2Rlc191c2FnZV9tb25pdG9yLmdv) | `0.00% <0.00%> (ø)` | |
   | [pkg/scheduler/objects/allocation.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL2FsbG9jYXRpb24uZ28=) | `100.00% <ø> (ø)` | |
   | [pkg/scheduler/partition\_manager.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9wYXJ0aXRpb25fbWFuYWdlci5nbw==) | `20.00% <50.00%> (ø)` | |
   | [pkg/scheduler/objects/application.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL2FwcGxpY2F0aW9uLmdv) | `55.07% <62.71%> (+6.16%)` | :arrow_up: |
   | [pkg/scheduler/objects/queue.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL3F1ZXVlLmdv) | `69.18% <63.63%> (-0.27%)` | :arrow_down: |
   | [pkg/scheduler/objects/node.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9vYmplY3RzL25vZGUuZ28=) | `81.98% <75.00%> (+0.16%)` | :arrow_up: |
   | [pkg/scheduler/partition.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3NjaGVkdWxlci9wYXJ0aXRpb24uZ28=) | `72.53% <82.95%> (+6.49%)` | :arrow_up: |
   | [pkg/webservice/handlers.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL3dlYnNlcnZpY2UvaGFuZGxlcnMuZ28=) | `57.00% <92.00%> (+2.86%)` | :arrow_up: |
   | [pkg/common/resources/resources.go](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree#diff-cGtnL2NvbW1vbi9yZXNvdXJjZXMvcmVzb3VyY2VzLmdv) | `96.22% <94.28%> (+0.19%)` | :arrow_up: |
   | ... and [5 more](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260/diff?src=pr&el=tree-more) | |
   
   ------
   
   [Continue to review full report at Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=continue).
   > **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
   > `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
   > Powered by [Codecov](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=footer). Last update [4dda217...ba84ebf](https://codecov.io/gh/apache/incubator-yunikorn-core/pull/260?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org