Skip to content

Commit 6e0f93b

Browse files
authored
Merge pull request #323 from saad-ali/clarifyTimeouts
Clarify timeout and retries
2 parents 847f27b + 3a642ac commit 6e0f93b

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

spec.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,23 @@ These limits apply for messages generated by both COs and plugins.
395395

396396
Scalar fields, even REQUIRED ones, will be defaulted if not specified, and any field set to the defaul value will not be serialized over the wire as per [proto3](https://developers.google.com/protocol-buffers/docs/proto3#default).
397397

398+
#### Timeouts
399+
400+
Any of the RPCs defined in this spec MAY timeout and MAY be retried.
401+
The CO MAY chooses the maximum time it is willing to wait for a call,
402+
how long it waits between retries, and how many time it retries (these
403+
values are not negotiated between plugin and CO).
404+
405+
Idempotency requirements ensure that a retried call with the same fields
406+
continues where it left off when retried. The only way to cancel a call
407+
is to issue a "negation" call if one exists (for example, issue a
408+
`ControllerUnpublishVolume` call to cancel a pending
409+
`ControllerPublishVolume` operation, etc.). In some cases, a CO MAY not
410+
be able to cancel a pending operation, because it depends on the result
411+
of the pending operation in order to execute the "negation" call (for
412+
example, if a `CreateVolume` call never completes, a CO may not have the
413+
`volume_id` to call `DeleteVolume` with).
414+
398415
### Error Scheme
399416

400417
All CSI API calls defined in this spec MUST return a [standard gRPC status](https://github.com/grpc/grpc/blob/master/src/proto/grpc/status/status.proto).

0 commit comments

Comments
 (0)