现场有几个注入的会话:一个 idle in transaction 的会话持有表锁、一个读这张表的会话在等它,另一个 idle in transaction 的会话,一个在等两阶段事务的会话,还有一个 pg_sleep(3600)。
~/kbdiag sessions
echoEXIT_CODE=$?
sessions OK (KingbaseES V008R006C009B0014, primary, system@local, 2026-09-27T13:35:17+08:00)
connected: 8 client sessions (not counting kbdiag), 1 walsender, 7 background
count user database application client
2 esrep esrep internal_rwcmgr 192.168.105.10
1 esrep esrep internal_rwcmgr 192.168.105.11
1 system test kbdiag_inj_idle_txn local
1 system test kbdiag_inj_lock_holder local
1 system test kbdiag_inj_lock_waiter local
1 system test kbdiag_inj_long_query local
1 system test kbdiag_inj_prepared_waiter local
not idle: 5
pid user database application client state xact query wait sql
1045715 system test kbdiag_inj_lock_holder local idle in transaction 30s 30s - lock table kbdiag_inj_lock in access exclusive mode;
1045724 system test kbdiag_inj_lock_waiter local active 30s 30s Lock:relation select count(*) from kbdiag_inj_lock;
1045809 system test kbdiag_inj_idle_txn local idle in transaction 28s 27s - select txid_current() as kbdiag_last, pg_sleep(1);
1046007 system test kbdiag_inj_prepared_waiter local active 25s 25s Lock:relation lock table kbdiag_inj_2pc in access exclusive mode;
1046088 system test kbdiag_inj_long_query local active 24s 24s Timeout:PgSleep select pg_sleep(3600);
EXIT_CODE=0
sessions OK (KingbaseES V008R006C009B0014, primary, system@local, 2026-09-27T13:35:20+08:00)
connected: 8 client sessions (not counting kbdiag), 1 walsender, 7 background
count user database application client
2 esrep esrep internal_rwcmgr 192.168.105.10
1 esrep esrep internal_rwcmgr 192.168.105.11
1 system test kbdiag_inj_idle_txn local
1 system test kbdiag_inj_lock_holder local
1 system test kbdiag_inj_lock_waiter local
1 system test kbdiag_inj_long_query local
1 system test kbdiag_inj_prepared_waiter local
not idle: 5
pid user database application client state xact query wait sql
1045715 system test kbdiag_inj_lock_holder local idle in transaction 33s 33s - lock table kbdiag_inj_lock in access exclusive mode;
1045724 system test kbdiag_inj_lock_waiter local active 33s 33s Lock:relation select count(*) from kbdiag_inj_lock;
... 3 more rows not shown (use --limit 0 to show all)
EXIT_CODE=0
--limit 裁的是 not idle 列表(和 --json 里的行),最后一行说明还有多少行没显示。汇总和判定仍然覆盖全部会话。