[ https://issues.apache.org/jira/browse/MESOS-4067?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15041306#comment-15041306 ]
Michael Park commented on MESOS-4067: ------------------------------------- I was able to figure out one issue (not sure if there are more issues, or if the subsequent failures are all stemmed from this one): {code} // Attempt to unreserve an invalid set of resources (not dynamically // reserved), reserve the second set, and launch a task. driver.acceptOffers({offer.id()}, {UNRESERVE(unreserved1), RESERVE(dynamicallyReserved2), LAUNCH({taskInfo})}, filters); // Wait for TASK_FINISHED update ack. AWAIT_READY(statusUpdateAcknowledgement); EXPECT_EQ(TASK_FINISHED, statusUpdateAcknowledgement.get().state()); // In the next offer, expect to find both sets of reserved // resources, since the Unreserve operation should fail. AWAIT_READY(offers); ASSERT_EQ(1u, offers.get().size()); offer = offers.get()[0]; EXPECT_TRUE( Resources(offer.resources()).contains( dynamicallyReserved1 + dynamicallyReserved2 + unreserved2)); {code} The intention here seems to be: Perform an {{acceptOffers}} with a sequence of operations including a launch task, wait until the launch task has finished and therefore the resources recovered. Then expect all of the available resources to be offered in a single offer. The issue is that at 50ms as our {{allocation_interval}}, we can make an offer with the available resources while the task is being launched, running, etc. This premature offer is picked up by our {{EXPECT_CALL}} for {{resourceOffers}} and we don't meet our expectation of receiving an offer with {{dynamicallyReserved1 + dynamicallyReserved2 + unreserved2}}. A few possible approaches in my preferred order: # We may not need all of these moving parts, and possibly just use one set of resources instead of three. Refer to {{ReservationTest.ReserveAndLaunchThenUnreserve}} for an example. # Turn allocation off {{allocation_interval=1000s}} and use {{reviveOffers}} to manually control the offers. Refer to {{ReservationEndpointsTest.ReserveAvailableAndOfferedResources}} for an example. # Instead of a simple {{FutureArg<1>(offers)}} as the action for {{EXPECT_CALL}} of {{resourceOffers}}, perhaps we can aggregate them instead. This one feels like it could get pretty tricky. [~greggomann], [~jieyu] What are your thoughts? > ReservationTest.ACLMultipleOperations is flaky > ---------------------------------------------- > > Key: MESOS-4067 > URL: https://issues.apache.org/jira/browse/MESOS-4067 > Project: Mesos > Issue Type: Bug > Reporter: Michael Park > Labels: flaky, mesosphere > > Observed from the CI: > https://builds.apache.org/job/Mesos/COMPILER=gcc,CONFIGURATION=--verbose%20--enable-libevent%20--enable-ssl,OS=ubuntu%3A14.04,label_exp=docker%7C%7CHadoop/1319/changes -- This message was sent by Atlassian JIRA (v6.3.4#6332)