Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-9612

Resource provider manager assumes all operations are triggered by frameworks

    XMLWordPrintableJSON

Details

    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.

      Attachments

        Activity

          People

            nfnt Jan Schlicht
            bbannier Benjamin Bannier
            Benjamin Bannier Benjamin Bannier
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: