googleapis / googleapis/google-cloud-rust

Discovery LRO poller ignores on_in_progress, polling running operations forever

Open Beginner friendly
#6,710 0 comments 0 reactions 0 assignees View on GitHub
type: bug
Dominant language
Rust
Stars
955
Forks
144
Avg merge
1d 5h
Merged PRs (30d)
279

Description

Unconfirmed. This is the result of a search with Claude, may be a false positive.

In `src/lro/src/internal/discovery.rs`, `handle_poll` handles the polling outcome for Discovery-based long-running operations:

https://github.com/googleapis/google-cloud-rust/blob/f02b42c2ac5720334cd2b5335824bd4166264527/src/lro/src/internal/discovery.rs#L215-L232

While the AIP-151 poller in `src/lro/src/details.rs:104-109` invokes `error_policy.on_in_progress(state, &operation_name)` whenever an operation is `InProgress`, the Discovery poller only invokes `error_policy.on_error()` on `Err`.

Because `on_in_progress` is never called, time limits and attempt limits configured on the polling policy (e.g. via `.with_time_limit(...)` or `.with_attempt_limit(...)`) are never evaluated for operations that remain in the `RUNNING` state, causing the client to poll indefinitely.

Contributor guide

Open the contributing guide

Research direction

Start in src/lro/src/internal/discovery.rs at handle_poll and compare its InProgress handling with src/lro/src/details.rs:104-109, where on_in_progress is invoked. Verify the behavior for a Discovery operation that remains RUNNING and confirm that configured time and attempt limits are evaluated before considering the issue done.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design
Issue type
Bug
Difficulty
2/5
Estimated time
Half a day
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
75/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.