[
https://issues.apache.org/jira/browse/GOBBLIN-2062?focusedWorklogId=918031&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-918031
]
ASF GitHub Bot logged work on GOBBLIN-2062:
-------------------------------------------
Author: ASF GitHub Bot
Created on: 07/May/24 07:43
Start Date: 07/May/24 07:43
Worklog Time Spent: 10m
Work Description: phet commented on code in PR #3944:
URL: https://github.com/apache/gobblin/pull/3944#discussion_r1591963116
##########
gobblin-service/src/test/java/org/apache/gobblin/service/modules/orchestration/OrchestratorTest.java:
##########
@@ -81,12 +84,15 @@ public class OrchestratorTest {
private FlowCatalog flowCatalog;
private FlowSpec flowSpec;
- private Orchestrator orchestrator;
+
+ private FlowStatusGenerator mockFlowStatusGenerator;
+ private DagManager mockDagManager;
+ private Orchestrator dagMgrNotFlowLaunchHandlerBasedOrchestrator;
private static final String TEST_USER = "testUser";
private static final String TEST_PASSWORD = "testPassword";
private static final String TEST_TABLE = "quotas";
- @BeforeClass
+ @BeforeMethod
Review Comment:
I agree and now realize, after you pointed it out, that I didn't
contextualize overall test init best practice, so much as denounce what's
broken about `@BeforeClass`-only init.
to encapsulate a fuller picture now, I'd advise
> prefer `@{Before,After}Method` test init to `@{Before,After}Class`". when
mocks are in use, the latter w/o the former, MOST LIKELY indicates the wrong
choice, whereas having only method, but not class-level init is quite fine. In
fact the only really acceptable reason for choosing class-level init is to
amortize payment of initialization tax just once per class, rather than
incurring once per test case.
at the moment, I can't think of any non-performance-motivated argument to
use `@BeforeClass` over just adding everything into `@BeforeMethod`
##########
gobblin-service/src/test/java/org/apache/gobblin/service/modules/orchestration/OrchestratorTest.java:
##########
@@ -81,12 +84,15 @@ public class OrchestratorTest {
private FlowCatalog flowCatalog;
private FlowSpec flowSpec;
- private Orchestrator orchestrator;
+
+ private FlowStatusGenerator mockFlowStatusGenerator;
+ private DagManager mockDagManager;
+ private Orchestrator dagMgrNotFlowLaunchHandlerBasedOrchestrator;
private static final String TEST_USER = "testUser";
private static final String TEST_PASSWORD = "testPassword";
private static final String TEST_TABLE = "quotas";
- @BeforeClass
+ @BeforeMethod
Review Comment:
I agree and now realize, after you pointed it out, that I didn't
contextualize overall test init best practice, so much as denounce what's
broken about using solely `@BeforeClass` init.
to encapsulate a fuller picture now, I'd advise
> prefer `@{Before,After}Method` test init to `@{Before,After}Class`". when
mocks are in use, the latter w/o the former, MOST LIKELY indicates the wrong
choice, whereas having only method, but not class-level init is quite fine. In
fact the only really acceptable reason for choosing class-level init is to
amortize payment of initialization tax just once per class, rather than
incurring once per test case.
at the moment, I can't think of any non-performance-motivated argument to
use `@BeforeClass` over just adding everything into `@BeforeMethod`
Issue Time Tracking
-------------------
Worklog Id: (was: 918031)
Time Spent: 2h 20m (was: 2h 10m)
> adhoc flow failure due to concurrent execs must be removed from flow catalog
> ----------------------------------------------------------------------------
>
> Key: GOBBLIN-2062
> URL: https://issues.apache.org/jira/browse/GOBBLIN-2062
> Project: Apache Gobblin
> Issue Type: New Feature
> Components: gobblin-service
> Reporter: Kip Kohn
> Assignee: Abhishek Tiwari
> Priority: Major
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> the Orchestrator + DagManager MUST remove adhoc flows that violate concurrent
> execs from the flow catalog. otherwise gaas will continue to return '409
> Conflict' to each subsequent attempt to create an adhoc flow with the same
> flowGroup+flowName. this is despite the fact that the flow (which still
> remains in the FlowCatalog, when it shouldn't be) already has the status
> FAILED, which is a "final status".
--
This message was sent by Atlassian Jira
(v8.20.10#820010)