New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stm cannot set linearizable read #11963
Comments
Same problem. I tend to believe this is a bug? |
Also experiencing this issue. We recently changed the way we connected to our etcd cluster. However, this lead to the same situation above. I assume because the subsequent reads are happening on other nodes which are behind. |
Trying to get my head around this. I am probably very mistaken, but here goes. The docs state:
This is the same revision chosen to predicate subsequent reads after the first in the STM. What seems concerning is that a range request can return a revision here which other nodes might not have reached yet. Or if this is not something that can be relied upon, how would one get that for the first read / range? |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions. |
Do't know much about STM implementation. I think it would be best to reach out to @heyitsanthony who wrote, and xiang90 who reviewed STM code in #4760. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions. |
Problem
I find that when I call stm put/get concurrently, etcd client may panic with the following error message:
Reproduce Procedure
client.go:
Run client.go, it will panic:
Analysis
panic happens at etcd/clientv3/concurrency/stm.go:
WithSerializable() is defined in clientv3/op.go:
From its comments we see that when WithSerializable is set, stm get operation will not be executed linearly, may be this is the reason for this panic?
Since WithSerializable option is not configurable in stmSerializable.Get(), how to run stmSerializable.Get() linearly?
The text was updated successfully, but these errors were encountered: