整个集群的update变慢,其他正常。怀疑是被锁,但是无法找到是哪个锁的

这里有个问题在transaction starts 之后,如果发现一直没关闭,不是应该在gc life time之后会直接清除锁么。咋还在锁着呢。这里开的是乐观锁。
而且锁掉的行怎么这么多,有办法根据transaction starts里面有锁着哪些行么。

请问是如何判断这个问题的呢,begin 需要配合 commit 完成事务提交,否则需要等到 sql timeout 或者 connect time 才会断开。

目前在事务开启和关闭录制到,可能出现问题是该条。
1、session 202:35872 的只开启事物未关闭事物。
2、10秒左右的时间内未查到只有autocommit=1的语句。

已经commit的了,但是无法自动提交导致,在这个session继续进来的应该自动提交的sql会继续使用第一个set autocommit=0的情况么。

[2020/07/22 09:29:43.351 +08:00] [WARN] [conn.go:684] ["dispatch error"] [conn=2803017] [connInfo="id:2803017, addr:10.204.9.202:35872 status:1, collation:utf8_general_ci, user:uic"
] [command=Query] [status="inTxn:1, autocommit:0"] [sql="select\
         \
    id, uuid, user_name, password, real_name, nick_name, sex, mobile_phone, email, user_card_no,\
    use
r_card_no_file, user_card_valid_date_start, user_card_valid_date_end, user_card_issuing_authority,\
    birth, head_img_url, wx_id, union_id, is_subscribe_wx, subscribe_wx_time, can
cel_subscribe_wx_time,\
    is_bind_wx, bind_wx_time, cancel_bind_wx_time, fwc_id, is_subscribe_fwc, subscribe_fwc_time,\
    cancel_subscribe_fwc_time, is_bind_fwc, bind_fwc_time,
cancel_bind_fwc_time, sf_pay_open_id,\
    nation, education, profession, province, city, district, residence_province, residence_city,\
    residence_district, residence_address, p
oints, update_points_time, extend_attr, reg_time,\
    reg_source, status, is_del, create_time, create_emp, update_time, update_emp, version,is_face_auth,is_real_name,real_name_time
s,wx_reg_source,is_open_face,nation_code\
   \
        from uic_user\
        where id = 113681822142971904"] [err="[tikv:9006]GC life time is shorter than transaction duration, tra
nsaction starts at 2020-07-22 09:18:50.841 +0800 CST, GC safe point is 2020-07-22 09:19:31.441 +0800 CST\

select * from mysql.tidb where variable_name like ‘%gc%’;
执行下,并返回下结果

终于查出来了,原因是因为流量录制的时候,没控制好当前端口进入数据导致的。跟业务和TiDB无关

在简述下原因呢

1、录制流量的时候需要绑定网卡ip,并且过滤相关端口,获得网卡数据。
2、根据网卡上的源端口将流量打到一个session中去,保证事物一致性。
3、由于过滤端口的时候将该网卡进出端口的流量都复制到session中去了,多了一些set autocommit=0的数据未关闭,导致在该session数据获取的start time都是一个固定的值,直到通道关闭或者又塞进去了set autocommit=1才会 停止报KV:9006的错误

:+1:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。