[Bug]: etcd cluster storage delete drops its success result
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 14.7k
- Forks
- 2.8k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 489
Description
System Info
Platform-independent etcd cluster-storage behavior on current main.
Reproduction
Etcd3ClusterStorage.delete() is declared to return bool and the shared ClusterStorage contract says delete returns whether the key was deleted, but the etcd implementation discards the client result:
async def delete(self, key: str) -> bool:
self.client.delete(key)
The successful path therefore always returns None, unlike the HTTP backend and unlike the method contract.
Expected behavior
Return the boolean result from the etcd client's delete() call.
Actual behavior
Successful etcd deletes return None.
Proposed fix
Return self.client.delete(key) and add a CPU-only mocked regression test covering both True and False client results.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at Etcd3ClusterStorage.delete() and compare it with the shared ClusterStorage contract and HTTP backend behavior. Add a CPU-only mocked regression test covering both True and False client results; done means the etcd delete returns the client's boolean result and the test passes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 82/100