Skip to content

rls: response with no targets should be treated as an error #6719

@easwars

Description

@easwars

According to the original design:

An RLS request is considered to have succeeded if it returns an OK status and the 
RLS response's targets list contains at least one non-empty entry.

We are currently handling the case of a response with zero targets the same way we would handle a successful response. This means that when an RPC is made, the cache entry will not have any READY child policy wrappers, and hence will be queued until the RPC context expires. Instead, we should treat this case as an error and set the cache entry in backoff. The code that handles an RLS response is here:

func (p *rlsPicker) handleRouteLookupResponse(cacheKey cacheKey, targets []string, headerData string, err error) {

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions