Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
None
-
Storage R11 Sprint 40, Storage: RI-12 Sprint 43
-
5
Description
When the agent tries to apply an operation to resource provider resources, it invokes ResourceProviderManager::applyOperation which in turn invokes ResourceProviderManagerProcess::applyOperation. That function currently assumes that the received message contains a valid FrameworkID,
void ResourceProviderManagerProcess::applyOperation( const ApplyOperationMessage& message) { const Offer::Operation& operation = message.operation_info(); const FrameworkID& frameworkId = message.framework_id(); // `framework_id` is `optional`.
Since FrameworkID is not a trivial proto types, but instead one with a required field value, the message composed with the frameworkId below cannot be serialized which leads to a failure below which in turn triggers a CHECK failure in the agent's function interfacing with the manager.
A typical scenario where we would want to support operator API calls here is to destroy leftover persistent volumes or reservations.