You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A follower may receive apply_snapshot request from a leader while it's already processing a previous snapshot apply request from that same leader. This can happen after a connection between the leader and follower is severed and a new connection is created.
But we have an assertion that this would never happen.
… may happen
server_impl::apply_snapshot() assumes that it cannot receive a snapshots
from the same host until the previous one is handled and usually this is
true since a leader will not send another snapshot until it gets
response to a previous one. But it may happens that snapshot sending
RPC fails after the snapshot was sent, but before reply is received
because of connection disconnect. In this case the leader may send
another snapshot and there is no guaranty that the previous one was
already handled, so the assumption may break.
Drop the assert that verifies the assumption and return an error in this
case instead.
Fixes: #15222
Message-ID: <ZO9JoEiHg+nIdavS@scylladb.com>
… may happen
server_impl::apply_snapshot() assumes that it cannot receive a snapshots
from the same host until the previous one is handled and usually this is
true since a leader will not send another snapshot until it gets
response to a previous one. But it may happens that snapshot sending
RPC fails after the snapshot was sent, but before reply is received
because of connection disconnect. In this case the leader may send
another snapshot and there is no guaranty that the previous one was
already handled, so the assumption may break.
Drop the assert that verifies the assumption and return an error in this
case instead.
Fixes: #15222
Message-ID: <ZO9JoEiHg+nIdavS@scylladb.com>
(cherry picked from commit 55f047f)
A follower may receive
apply_snapshot
request from a leader while it's already processing a previous snapshot apply request from that same leader. This can happen after a connection between the leader and follower is severed and a new connection is created.But we have an assertion that this would never happen.
logs: https://github.com/scylladb/scylladb/files/12465785/testlog.tar.gz (the above is from scylla-91.log)
cc @gleb-cloudius
The text was updated successfully, but these errors were encountered: