Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix a idempotency issues in CreateVolume #99

Merged
merged 1 commit into from
Dec 3, 2020

Commits on Dec 2, 2020

  1. Fix a idempotency issues in CreateVolume

    In case creating a new volume takes longer than the GRPC timeout,
    the provisioner could get in a state where volumes are considered
    ready even if no resource was ever created. This commit fixes this
    issue by ensuring that volumes are only considered ready after the
    expected amount of volumes was placed.
    
    The bug happened in cases where:
    * Create() succesfully called saveVolume(), persisting the volume
      information as annotations, which is interpreted as "ready" resources
    * Immediatly after, the GRPC timeout cancels the request context, meaning
      the volume scheduler aborted before any resources could be assigned to
      nodes
    
    A simple reording of "volumeScheduler.Create()" and "saveVolume()" would
    lead to a different issue, in which continuously more volumes are placed
    but never marked as ready. To prevent this, volumes that reference at least
    the number of resources as required by the parameters are considered ready.
    
    Note that this is a stopgap solution until volume schedulers are re-written
    to be idempotent themselves.
    WanzenBug committed Dec 2, 2020
    Configuration menu
    Copy the full SHA
    f4eeb37 View commit details
    Browse the repository at this point in the history