csi: missing plugins during node delete are not an error (#8619)

When deregistering a client, CSI plugins running on that client may not get a
chance to fingerprint before being stopped. Account for the case where a
plugin allocation is the last instance of the plugin and has been deleted from
the state store to avoid errors during node deregistration.
This commit is contained in:
Tim Gross
2020-08-10 11:02:01 -04:00
committed by GitHub
parent 7dd307dc8c
commit bf67737f56

View File

@@ -1158,7 +1158,9 @@ func deleteNodeCSIPlugins(txn *memdb.Txn, node *structs.Node, index uint64) erro
return fmt.Errorf("csi_plugins lookup error %s: %v", id, err)
}
if raw == nil {
return fmt.Errorf("csi_plugins missing plugin %s", id)
// plugin may have been deregistered but we didn't
// update the fingerprint yet
continue
}
plug := raw.(*structs.CSIPlugin).Copy()