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
After that, it kept failed on the same error. Also note that the interval from "retry later" and "receive a grpc cancel signal from remote" was short (about 1ms):
At TiKV side, the region split was actually completed, and no other warning or error except the "server is busy" due to the region had not initially flushed.
So it seems that the canceled was not initiated by TiKV side.
After investigate some codes, along with the behavior that TiDB kept failed on the same error, and the duration of request was short, the cancel seems to be caused by keep alive timeout.
When keepalive timeout (see http2Client.keepalive), grpc-go will close the connection, and cancel the http2Client.ctx. From then on, when invoking RPC requests, as ctx.Done() is closed (see http2Client.NewStream), we will always get the error as Canceled.
The text was updated successfully, but these errors were encountered:
Summary
TiDB always failed with error: "rpc error: code = Canceled desc = CANCELLED"
Detail
When TiDB requested split on region 57:
Met "NotLeader", "EpochNotMatch" as region 57 was also a newly splitted region:
(The "server is busy" was not an exception, which was caused by the region 57 was not initial flush yet at that time).
Then met the first "receive a grpc cancel signal from remote", "rpc error: code = Canceled desc = CANCELLED":
After that, it kept failed on the same error. Also note that the interval from "retry later" and "receive a grpc cancel signal from remote" was short (about 1ms):
Then the request was finally failed due to retry exhausted:
At TiKV side, the region split was actually completed, and no other warning or error except the "server is busy" due to the region had not initially flushed.
So it seems that the canceled was not initiated by TiKV side.
After investigate some codes, along with the behavior that TiDB kept failed on the same error, and the duration of request was short, the cancel seems to be caused by keep alive timeout.
When keepalive timeout (see
http2Client.keepalive
),grpc-go
will close the connection, and cancel thehttp2Client.ctx
. From then on, when invoking RPC requests, asctx.Done()
is closed (seehttp2Client.NewStream
), we will always get the error asCanceled
.The text was updated successfully, but these errors were encountered: