tidb 日志有warn 报警unexpected `Flen` value(-1) in CONCAT's args

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:V3.0.15
  • 【问题描述】:
    tidb 日志一直有下面的warn 告警:
    [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]

若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出打印结果,请务必全选并复制粘贴上传。

能否发一段包含告警的完整日志,发生前的日志也发送一下,多谢。

[2020/10/13 15:50:24.065 +08:00] [INFO] [set.go:192] [“set session var”] [conn=1217654] [name=character_set_results] [val=NULL]
[2020/10/13 15:50:24.736 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:50:36.041 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:50:48.101 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:50:50.354 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:50:51.674 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:50:52.066 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:50:52.360 +08:00] [INFO] [server.go:374] [“new connection”] [conn=1217656] [remoteAddr=]
[2020/10/13 15:50:52.398 +08:00] [INFO] [set.go:192] [“set session var”] [conn=1217656] [name=character_set_results] [val=NULL]
[2020/10/13 15:51:08.669 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:51:15.672 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:51:30.195 +08:00] [INFO] [client_batch.go:611] [“recycle idle connection”] [target=]
[2020/10/13 15:51:38.382 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:52:02.195 +08:00] [INFO] [client_batch.go:611] [“recycle idle connection”] [target=]
[2020/10/13 15:52:02.196 +08:00] [INFO] [client_batch.go:611] [“recycle idle connection”] [target=]
[2020/10/13 15:52:08.699 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:52:43.770 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:52:48.337 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:52:52.466 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:53:00.195 +08:00] [INFO] [client_batch.go:611] [“recycle idle connection”] [target=]
[2020/10/13 15:53:14.151 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:53:15.258 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:53:17.195 +08:00] [INFO] [client_batch.go:611] [“recycle idle connection”] [target=]
[2020/10/13 15:53:21.696 +08:00] [INFO] [client_batch.go:611] [“recycle idle connection”] [target=]
[2020/10/13 15:53:25.084 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:53:28.554 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:53:55.308 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:16.230 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:25.267 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:35.603 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:42.097 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:42.596 +08:00] [INFO] [server.go:374] [“new connection”] [conn=1217665] [remoteAddr=]
[2020/10/13 15:54:42.610 +08:00] [INFO] [set.go:192] [“set session var”] [conn=1217665] [name=character_set_results] [val=NULL]
[2020/10/13 15:54:49.639 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:51.888 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:53.224 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:53.674 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:54:57.870 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:55:12.173 +08:00] [INFO] [server.go:374] [“new connection”] [conn=1217667] [remoteAddr=]
[2020/10/13 15:55:12.187 +08:00] [INFO] [set.go:192] [“set session var”] [conn=1217667] [name=character_set_results] [val=NULL]
[2020/10/13 15:55:18.101 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]
[2020/10/13 15:55:18.874 +08:00] [WARN] [builtin_string.go:269] [“unexpected Flen value(-1) in CONCAT’s args”] [“arg’s index”=0]

  1. 您好,请问您这边知道是哪个 sql 导致的报错吗?
  2. 如果不清楚,需要开启 general log 来找到报错 sql ,多谢。注意在业务低峰期执行,开启general log 会打印较多日志
    https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_general_log

set tidb_general_log = on; – 找一个 tidb 开启 general log
找到 sql 后,
set tidb_general_log = 0; – 关闭 general log

开启了,没有报错的SQL

  1. 麻烦把开启的日志上传下吧,多谢。
  2. 是否有多个 tidb-server,其他tidb-server 有报错吗?换个开启试试,多谢。

找到了,SELECT
CONCAT(
CAST(OPERDATE AS CHAR),
‘|’,
LPAD(OPERTIME, 8, ‘0’)
) AS POSTSTR 这个concat 为什么会引起报警?

麻烦上传完整的 sql 和 使用到的表结构,多谢。

OPERDATE bigint(20) DEFAULT NULL,
OPERTIME bigint(20) DEFAULT NULL

SELECT
  		CONCAT(
			CAST(OPERDATE AS CHAR),
			'|',
			LPAD(OPERTIME, 8, '0')
		) AS POSTSTR		FROM
		tables

知道问题原因了,是因为第一个参数在做类型转化的时候,需要定义类型的长度,不然concat 会有warn提示长度为空 unexpected Flen value(-1) ,改成这样就可以了
CONCAT(CAST(OPERDATE AS CHAR(8)),’|’,LPAD(OPERTIME,8,‘0’)) AS POSTSTR,

:+1:

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