Td升级后出现订阅失败

【TDengine 使用环境】
测试

【TDengine 版本】

3.8.8→3.4.2

【操作系统以及版本】

centos7

【部署方式】容器/非容器部署

非容器部署

【集群节点数】

1

【集群副本数】

1

【描述业务影响】

从3.8.8升级到3.4.2之后 应用出现订阅失败

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)

ERROR (0x231e): java.util.concurrent.TimeoutException: ERROR (0x231e): failed to complete the task:{“action”:“unsubscribe”,“args”:{“req_id”:1}} within the specified time : 10000,MILLISECONDS

ERROR (0x231e): java.util.concurrent.TimeoutException: ERROR (0x231e): failed to complete the task:SubscribeReq{user=‘root", password=’", bearerToken='“, db='null”, groupId='consumer_group_dev", clientId='client_1787215335052", offsetRest='earliest", topics=device_last_data_topic, autoCommit='false", autoCommitIntervalMs='null", withTableName='true", enableBatchMeta='null", tz='null", app=‘java", ip=’“, connector='jdbc-ws-v3.8.0-9d14c50”, config={}, reqId=1} within the specified time : 10000,MILLISECONDS

show transactions; 看看有什么

这个错误的意思是 服务端做消费者均衡还没完成。所以消费者 不可用。

重启一下消费程序试试


重启应用没有用

可以远程吗? 我上去看看日志。微信说吧18611900781

原因是 升级后 残留有旧的数据消息,导致解析旧数据失败。

这个问题的解决方法:

show transactions; 找到 tmq_reb 的这是事务 id.

alter all dnodes ‘forceKillTrans 1’; 把事务改为可以强制删除

kill transaction 事务的id; 把 tmq-reb 这个异常的事务删掉即可

建议后续升级之前,把用的所有db 都flush 一下,落落盘 最可靠,避免出现这种偶发的异常行为

1 个赞