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

CSI: fix transaction handling in state store #9438

Merged
merged 8 commits into from
Nov 25, 2020
Merged

Commits on Nov 24, 2020

  1. csi: failing test for concurrent plugin stop

    CSI plugin counts can drift from the correct values if allocations for a CSI
    plugin stop concurrently, as with a job stop or a controller and node plugin
    on the same client. This test demonstrates the behavior.
    tgross committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    680b7c4 View commit details
    Browse the repository at this point in the history
  2. csi: snapshot in read-only CSI RPC endpoints for consistency

    CSI volumes need to be "denormalized" with their plugins and (optionally)
    allocations. Read-only RPC endpoints should take a snapshot so that we can
    make multiple state store method calls with a consistent view.
    tgross committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    ba4c0b3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b1dd685 View commit details
    Browse the repository at this point in the history
  4. csi: remove nested read txn from plugin write txns

    When making updates to CSI plugins, the state store methods that have open
    write transactions were querying the state store using the same methods used
    by the CSI RPC endpoint, but these method creates their own top-level read
    transactions. During concurrent plugin updates (as happens when a plugin job
    is stopped), this can cause write skew in the plugin counts.
    
    Refactor the CSIPlugin query methods to have an implementation method that
    accepts a transaction, which can be called with either a read txn or a write
    txn.
    tgross committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    22007f5 View commit details
    Browse the repository at this point in the history
  5. csi: fix watches on volumes

    Add missing nil checks and missing watch `Add` calls on some state store
    methods for CSI volumes
    tgross committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    962cd25 View commit details
    Browse the repository at this point in the history
  6. csi: remove nested read txn from volume write txns

    When making updates to CSI volumes, the state store methods that have open
    write transactions were querying the state store using the same methods used
    by the CSI RPC endpoint, but these method creates their own top-level read
    transactions. These have yet not been implicated in any bugs.
    
    Refactor the CSIVolume query methods to have an implementation method that
    accepts a transaction, which can be called with either a read txn or a write
    txn.
    tgross committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    8b88e59 View commit details
    Browse the repository at this point in the history
  7. belt-and-suspenders nil check

    tgross committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    2188df3 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2020

  1. Configuration menu
    Copy the full SHA
    3b3bc87 View commit details
    Browse the repository at this point in the history