tispark Multiple entries with same key

【 TiDB 使用环境】生产环境
【 TiDB 版本】v6.5.3

2024-12-25 10:25:25 [main] ERROR SparkSQLEngine:88 - Failed to instantiate SparkSession: Multiple entries with same key: perio_scan_process_orig=table_id: 12961
columns {
  column_id: 1
  tp: 15
  collation: -46
  columnLen: 20
  decimal: 0
  flag: 4097
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 2
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 3
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 4
  tp: 3
  collation: -63
  columnLen: 11
  decimal: 0
  flag: 0
  default_val: "\000"
  pk_handle: false
}
 and perio_scan_process_orig=table_id: 12958
columns {
  column_id: 1
  tp: 15
  collation: -46
  columnLen: 20
  decimal: 0
  flag: 4097
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 2
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 3
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 4
  tp: 3
  collation: -63
  columnLen: 11
  decimal: 0
  flag: 0
  default_val: "\000"
  pk_handle: false
}

java.lang.IllegalArgumentException: Multiple entries with same key: perio_scan_process_orig=table_id: 12961
columns {
  column_id: 1
  tp: 15
  collation: -46
  columnLen: 20
  decimal: 0
  flag: 4097
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 2
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 3
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 4
  tp: 3
  collation: -63
  columnLen: 11
  decimal: 0
  flag: 0
  default_val: "\000"
  pk_handle: false
}
 and perio_scan_process_orig=table_id: 12958
columns {
  column_id: 1
  tp: 15
  collation: -46
  columnLen: 20
  decimal: 0
  flag: 4097
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 2
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 3
  tp: 10
  collation: -63
  columnLen: 10
  decimal: 0
  flag: 128
  default_val: "\000"
  pk_handle: false
}
columns {
  column_id: 4
  tp: 3
  collation: -63
  columnLen: 11
  decimal: 0
  flag: 0
  default_val: "\000"
  pk_handle: false
}

出现的原因好像是tispark长时间连接tidb。

目前通过修改源码 com.pingcap.tikv.catalog.Catalog 进行了兼容, 但仍不知道产生这个现象的根本原因

这个看上去元数据已经混乱了。
同一个库下面的同名的表,为什么会有2个不同的tableid?

tableid应该是唯一的,老tableid 在truncate table之类的操作后没删掉还是怎么回事。

反正这种情况肯定不正常。不是修改代码能解决的问题。

生产tidb ,gc 时间是24小时, 每6个小时通过br-pitr恢复到下游库。
现在的现象就是下游库 INFORMATION_SCHEMA.TABLES 出现了 db.table重复的现象。
而通过tidb查询 重复的db.table结果是正常。tispark连接时就卡在我截图的代码那个地方,报key冲突,只能先这样修改做一下兼容了

1 个赞

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