Skip to content

Fix ping method invoked before Init method for pluggable components #5658

@mcandeia

Description

@mcandeia

In what area(s)?

/area runtime

/area operator

/area placement

/area docs

/area test-and-release

What version of Dapr?

1.9.x

Expected Behavior

When initializing the pluggable component gRPC connection, we have been using the Ping method with wait for ready option to ensure the connection won't be in transient failures on subsequent calls (i.e invoking init method). This would prevent scenarios where Ping is used not only for liveness but also for readiness like deep pinging a database as the database connection might require metadata from component initialization, i.e the database connection string.

In order to make sure that init method will be called without any further transient errors and also provide a better way for create readiness and liveness probes the gRPC connection should block until its ready before any attempt to invoke methods, including the init method.

image

Actual Behavior

The diagram below shows how is the request flow between daprd and the component currently.

image

Steps to Reproduce the Problem

Release Note

RELEASE NOTE: FIX The pluggable components Ping method is now always invoked after the Init method.

Metadata

Metadata

Assignees

Labels

kind/bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions