@@ -1255,6 +1255,98 @@ public void testRetriesWithOverrides() {
12551255 Assertions .assertTrue (taskManager .getActiveTaskIds ().isEmpty ());
12561256 }
12571257
1258+ @ Test
1259+ public void testRetriesWithNewDeploys () {
1260+ SingularityRequestBuilder bldr = new SingularityRequestBuilder (
1261+ requestId ,
1262+ RequestType .RUN_ONCE
1263+ );
1264+ request = bldr .setNumRetriesOnFailure (Optional .of (2 )).build ();
1265+ saveRequest (request );
1266+
1267+ deployResource .deploy (
1268+ new SingularityDeployRequest (
1269+ new SingularityDeployBuilder (requestId , "d1" )
1270+ .setCommand (Optional .of ("cmd" ))
1271+ .build (),
1272+ Optional .empty (),
1273+ Optional .empty ()
1274+ ),
1275+ singularityUser
1276+ );
1277+
1278+ scheduler .drainPendingQueue ();
1279+ deployChecker .checkDeploys ();
1280+ scheduler .drainPendingQueue ();
1281+ resourceOffers ();
1282+
1283+ Assertions .assertEquals (1 , taskManager .getActiveTaskIds ().size ());
1284+
1285+ deployResource .deploy (
1286+ new SingularityDeployRequest (
1287+ new SingularityDeployBuilder (requestId , "d2" )
1288+ .setCommand (Optional .of ("cmd" ))
1289+ .build (),
1290+ Optional .empty (),
1291+ Optional .empty ()
1292+ ),
1293+ singularityUser
1294+ );
1295+
1296+ statusUpdate (taskManager .getActiveTasks ().get (0 ), TaskState .TASK_LOST );
1297+
1298+ scheduler .drainPendingQueue ();
1299+ deployChecker .checkDeploys ();
1300+ scheduler .drainPendingQueue ();
1301+ resourceOffers ();
1302+
1303+ Assertions .assertEquals (1 , taskManager .getActiveTaskIds ().size ());
1304+ Assertions .assertEquals ("d2" , taskManager .getActiveTaskIds ().get (0 ).getDeployId ());
1305+
1306+ deployResource .deploy (
1307+ new SingularityDeployRequest (
1308+ new SingularityDeployBuilder (requestId , "d3" )
1309+ .setCommand (Optional .of ("cmd" ))
1310+ .build (),
1311+ Optional .empty (),
1312+ Optional .empty ()
1313+ ),
1314+ singularityUser
1315+ );
1316+
1317+ statusUpdate (taskManager .getActiveTasks ().get (0 ), TaskState .TASK_LOST );
1318+
1319+ scheduler .drainPendingQueue ();
1320+ deployChecker .checkDeploys ();
1321+ scheduler .drainPendingQueue ();
1322+ resourceOffers ();
1323+
1324+ Assertions .assertEquals (1 , taskManager .getActiveTaskIds ().size ());
1325+ Assertions .assertEquals ("d3" , taskManager .getActiveTaskIds ().get (0 ).getDeployId ());
1326+
1327+ deployResource .deploy (
1328+ new SingularityDeployRequest (
1329+ new SingularityDeployBuilder (requestId , "d4" )
1330+ .setCommand (Optional .of ("cmd" ))
1331+ .build (),
1332+ Optional .empty (),
1333+ Optional .empty ()
1334+ ),
1335+ singularityUser
1336+ );
1337+
1338+ statusUpdate (taskManager .getActiveTasks ().get (0 ), TaskState .TASK_LOST );
1339+
1340+ scheduler .drainPendingQueue ();
1341+ deployChecker .checkDeploys ();
1342+ scheduler .drainPendingQueue ();
1343+ resourceOffers ();
1344+
1345+ // TODO - new deploys have new deploy statistics, so we lose track of the # of retries
1346+ Assertions .assertEquals (1 , taskManager .getActiveTaskIds ().size ());
1347+ Assertions .assertEquals ("d4" , taskManager .getActiveTaskIds ().get (0 ).getDeployId ());
1348+ }
1349+
12581350 /* @Test
12591351 public void testCooldownAfterSequentialFailures() {
12601352 initRequest();
0 commit comments