-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Assertion failure in gossiper during node reconnect #795
Comments
@asias did we fix this ? |
Worth retest, since we now drain on shutdown. @gleb-cloudius can you verify? |
On Thu, Feb 18, 2016 at 03:31:08AM -0800, Asias He wrote:
|
On Thu, Feb 18, 2016 at 7:35 PM, Gleb Natapov notifications@github.com
You are right. I did manage to reproduce myself. start scylla node1 I repeat above a few times. I did not see the assert. Gleb, what did you do exactly? Asias |
On Thu, Feb 18, 2016 at 07:19:39PM -0800, Asias He wrote:
|
On Fri, Feb 19, 2016 at 3:03 PM, Gleb Natapov notifications@github.com
Did you run c-s when you add a new node? You did like below? start node1 Did you insert data before start node3?
Asias |
On Thu, Feb 18, 2016 at 11:22:22PM -0800, Asias He wrote:
|
The assert is about we can not find the entry in endpoint_state_map of the node itself. I checked the code. I can not really find any place we could call add_local_application_state before we call gossiper::start_gossiping() where it inserts broadcast address into endpoint_state_map. |
@asias, |
On Wed, Feb 24, 2016 at 4:55 PM, Pekka Enberg notifications@github.com
It is replicated to all the other cores from cpu 0, but we should only call
Asias |
@asias The replication of |
On Wed, Feb 24, 2016 at 5:05 PM, Pekka Enberg notifications@github.com
It is possible, but no one should call add_local_application_state on —
Asias |
I've sent patch to the list to make add_local_application_state can be called on all the cores. |
Gleb saw once: scylla: gms/gossiper.cc:1393: gms::gossiper::add_local_application_state(gms::application_state, gms::versioned_value):: mutable: Assertion `endpoint_state_map.count(ep_addr)' failed. The assert is about we can not find the entry in endpoint_state_map of the node itself. I can not really find any place we could call add_local_application_state before we call gossiper::start_gossiping() where it inserts broadcast address into endpoint_state_map. I can not reproduce issue, let's log the error so we can narrow down which application state triggered the assert. Refs: #795 Message-Id: <f4433be0a0d4f23470a5e24e528afdb67b74c7ef.1456315043.git.asias@scylladb.com>
add_local_application_state is used in various places. Before this patch, it can only be called on cpu zero. To make it safer to use, use invoke_on() to foward the code to run on cpu zero, so that caller can call it on any cpu. Refs: #795 Message-Id: <d69b81c5561622078dbe887d87209c4ea2e3bf46.1456315043.git.asias@scylladb.com>
I suggest we close this - unless there is anything else we can do |
Got this after killing scylla with "kill -9" and restarting:
scylla: gms/gossiper.cc:1393: gms::gossiper::add_local_application_state(gms::application_state, gms::versioned_value)::<lambda()> mutable: Assertion `endpoint_state_map.count(ep_addr)' failed.
The text was updated successfully, but these errors were encountered: