-
Notifications
You must be signed in to change notification settings - Fork 118
Description
Bug Report
1. Describe the bug
v5.4.3
What operating system and CPU are you using?
ec2 instance, r6a.4xlarge
16c128GB
org.tikv.common.exception.TiKVException: TimeOut Exceeded for current operation.
at org.tikv.common.util.ClientUtils.getTasks(ClientUtils.java:181)
at org.tikv.raw.RawKVClient.doSendBatchPut(RawKVClient.java:756)
at org.tikv.raw.RawKVClient.batchPut(RawKVClient.java:260)
at org.tikv.raw.RawKVClient.batchPut(RawKVClient.java:243)
2. Minimal reproduce step (Required)
Single node environment, all-in-one,
Single pd-server/tikv-server
System.out.println("Begin to put batch");
Map<ByteString, ByteString> map = new HashMap<ByteString, ByteString>();
pair = createFileEntryKey(100, "first_batch", 15);
map.put(org.tikv.shade.com.google.protobuf.ByteString.copyFrom(
pair.getFirst().toByteArray()),
org.tikv.shade.com.google.protobuf.ByteString.copyFrom(
pair.getSecond().toByteArray()));
pair = createFileEntryKey(100, "second_batch", 16);
map.put(org.tikv.shade.com.google.protobuf.ByteString.copyFrom(
pair.getFirst().toByteArray()),
org.tikv.shade.com.google.protobuf.ByteString.copyFrom(
pair.getSecond().toByteArray()));
tiKVStoreMetaRaw.putEntryBatchAtomic(map);
Create batch entries that could be in different region.
3. What did you see instead (Required)
What did happened?
Client side:
2022-12-15 15:03:01,043 WARN RawKVClient - Retry for get error
org.tikv.common.exception.RegionException: Region Exception occurred EpochNotMatch current epoch of region 2 is conf_ver: 1 version: 12, but you sent conf_ver: 1 version: 11
at org.tikv.common.region.RegionStoreClient.rawGetHelper(RegionStoreClient.java:897)
at org.tikv.common.region.RegionStoreClient.rawGet(RegionStoreClient.java:881)
at org.tikv.raw.RawKVClient.get(RawKVClient.java:288)
2022-12-15 15:05:56,873 WARN SlowLogImpl - A request spent 6003 ms. start=15:05:50.856, end=15:05:56.859, SlowLog:{"trace_id":13915657205484037136,"error":"TimeOut Exceeded for current operation.","spans":[{"event":"batchPut","begin":"15:05:50.856","duration_ms":6003,"properties":{"keySize":"2"}},{"event":"getRegionByKey","begin":"15:05:50.856","duration_ms":0},{"event":"getRegionByKey","begin":"15:05:50.856","duration_ms":0},{"event":"callWithRetry","begin":"15:05:50.856","duration_ms":3,"properties":{"method":"tikvpb.Tikv/RawBatchPut"}},{"event":"gRPC","begin":"15:05:50.856","duration_ms":3,"properties":{"method":"tikvpb.Tikv/RawBatchPut"}}],"pd_addresses":["http://127.0.0.1:2379"],"cluster_id":"7177389456460076655"}
org.tikv.common.exception.TiKVException: TimeOut Exceeded for current operation.
at org.tikv.common.util.ClientUtils.getTasks(ClientUtils.java:181)
at org.tikv.raw.RawKVClient.doSendBatchPut(RawKVClient.java:756)
at org.tikv.raw.RawKVClient.batchPut(RawKVClient.java:260)
at org.tikv.raw.RawKVClient.batchPut(RawKVClient.java:243)
Server side, no obvious error:
TiKV log:
[2022/12/15 15:02:51.013 +00:00] [INFO] [region.go:528] ["region Version changed"] [region-id=2] [detail="StartKey Changed:{080310858080B8BBDD161A06313732383130} -> {080310858080B8BBDD161A06313932353037}, EndKey:{}"] [old-version=10] [new-version=11]
[2022/12/15 15:02:51.013 +00:00] [INFO] [cluster_worker.go:220] ["region batch split, generate new regions"] [region-id=2] [origin="id:22 start_key:"080310858080B8BBDD161A06313732383130" end_key:"080310858080B8BBDD161A06313932353037" region_epoch:<conf_ver:1 version:11 > peers:<id:23 store_id:1 >"] [total=1]
[2022/12/15 15:03:01.017 +00:00] [INFO] [cluster_worker.go:128] ["alloc ids for region split"] [region-id=24] [peer-ids="[25]"]
[2022/12/15 15:03:01.022 +00:00] [INFO] [region.go:528] ["region Version changed"] [region-id=2] [detail="StartKey Changed:{080310858080B8BBDD161A06313932353037} -> {080310858080B8BBDD161A06323132323933}, EndKey:{}"] [old-version=11] [new-version=12]
[2022/12/15 15:03:01.022 +00:00] [INFO] [cluster_worker.go:220] ["region batch split, generate new regions"] [region-id=2] [origin="id:24 start_key:"080310858080B8BBDD161A06313932353037" end_key:"080310858080B8BBDD161A06323132323933" region_epoch:<conf_ver:1 version:12 > peers:<id:25 store_id:1 >"] [total=1]
pd log:
[2022/12/15 15:03:01.022 +00:00] [INFO] [raft.rs:1200] ["became leader at term 6"] [term=6] [raft_id=25] [region_id=24]
[2022/12/15 15:03:01.022 +00:00] [INFO] [peer.rs:4517] ["require updating max ts"] [initial_status=25769803800] [region_id=24]
[2022/12/15 15:03:01.022 +00:00] [INFO] [endpoint.rs:233] ["Resolver initialized"] [pending_data_index=0] [snapshot_index=145833] [observe_id=ObserveID(21)] [region=2]
[2022/12/15 15:03:01.023 +00:00] [INFO] [pd.rs:1437] ["succeed to update max timestamp"] [region_id=24]
[2022/12/15 15:03:01.023 +00:00] [INFO] [scheduler.rs:517] ["get snapshot failed"] [err="Error(Request(message: "EpochNotMatch current epoch of region 2 is conf_ver: 1 version: 12, but you sent conf_ver: 1 version: 11" epoch_not_match { current_regions { id: 2 start_key: 080310858080B8BBDD161A06323132323933 region_epoch { conf_ver: 1 version: 12 } peers { id: 3 store_id: 1 } } current_regions { id: 24 start_key: 080310858080B8BBDD161A06313932353037 end_key: 080310858080B8BBDD161A06323132323933 region_epoch { conf_ver: 1 version: 12 } peers { id: 25 store_id: 1 } } }))"] [cid=344336]
[2022/12/15 15:03:01.024 +00:00] [INFO] [endpoint.rs:314] ["register observe region"] [region="id: 24 start_key: 080310858080B8BBDD161A06313932353037 end_key: 080310858080B8BBDD161A06323132323933 region_epoch { conf_ver: 1 version: 12 } peers { id: 25 store_id: 1 }"]
[2022/12/15 15:03:01.024 +00:00] [INFO] [endpoint.rs:233] ["Resolver initialized"] [pending_data_index=0] [snapshot_index=6] [observe_id=ObserveID(22)] [region=24]
[2022/12/15 15:06:46.614 +00:00] [INFO] [util.rs:547] ["connecting to PD endpoint"] [endpoints=http://127.0.0.1:2379]
4. What did you expect to see? (Required)
The batchPut should be successfully
5. What are your Java Client and TiKV versions? (Required)
- Client Java: v3.3.0
- TiKV: v5.4.3