-
Notifications
You must be signed in to change notification settings - Fork 4.4k
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
Panic in tombstone_gc.go #2087
Comments
Going to kick this one forward - I think the PR still might have some race condition potential, but need to look at this in a little more detail. |
@slackpad - i believe the race-condition is here: Line 116 of
In the above code, you have a happens-before case "race condition" where the Should the race condition occur you'll end up with a panic because a A fix could be to just do a noop when that occurs like so in the comment below. |
expireTime method:
|
Thanks for taking a look, @deckarep. I think that |
I think the race is in here - https://github.com/hashicorp/consul/blob/v0.6.4/consul/state/tombstone_gc.go#L83-L89. The timer fires before the |
@slackpad - ah that does make sense. Great analysis on this one...nailing down a solution to these bugs is always tricky. 👍 |
If you have a question, please direct it to the
consul mailing list if it hasn't been
addressed in either the FAQ or in one
of the Consul Guides.
When filing a bug, please include the following:
consul version
for both Client and ServerClient:
Consul v0.6.4
Server:
Consul v0.6.4
consul info
for both Client and ServerClient:
Server:
Operating system and Environment details
OS X
10.11.5 (15F34)
Docker Version
1.11.1-beta13.1 (build: 8193)
Image:
library/consul:v0.6.4 7c41a9d97d38
Description of the Issue (and unexpected/desired result)
Panic on one node out of a 3-node cluster. All nodes are running locally in Docker using the official image. The networking errors may be due to machine sleeping at one point.
Reproduction steps
None at this time.
Log Fragments or Link to gist
The text was updated successfully, but these errors were encountered: