Skip to content

Store ActorNotFound failures when store_results is set - #887

Open
DSeaStar wants to merge 1 commit into
Bogdanp:masterfrom
DSeaStar:fix-actor-not-found-results
Open

Store ActorNotFound failures when store_results is set#887
DSeaStar wants to merge 1 commit into
Bogdanp:masterfrom
DSeaStar:fix-actor-not-found-results

Conversation

@DSeaStar

Copy link
Copy Markdown

Fixes #448.

When a worker receives a message for an actor that is not imported locally, Results._lookup_options() treated store_results as false. after_nack then skipped the result backend, so message.get_result() waited until timeout instead of raising ActorNotFound.

The producer already knows the actor's options. before_enqueue now copies store_results / result_ttl onto the message, and _lookup_options falls back to those (then the middleware defaults) when the actor is missing. A worker that never imported the actor can still persist the failure.

Messages that never asked for results are unchanged: after_nack still no-ops when store_results is unset.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

dramatiq.errors.ActorNotFound errors in Worker are not passed through result backend

1 participant