seata在RM识别锁主键冲突异常时会抛出get global lock fail异常,代码如下:

private void recognizeLockKeyConflictException(TransactionException te, String lockKeys) throws SQLException {
    if (te.getCode() == TransactionExceptionCode.LockKeyConflict) {
        StringBuilder reasonBuilder = new StringBuilder("get global lock fail, xid:");
        reasonBuilder.append(context.getXid());
        if (StringUtils.isNotBlank(lockKeys)) {
            reasonBuilder.append(", lockKeys:").append(lockKeys);
        }
        throw new LockConflictException(reasonBuilder.toString());
    } else {
        throw new SQLException(te);
    }

}

出现这个问题大概是锁表lock_table存在相同主键导致。