TDengine 错误码
本文中详细列举了在使用 TDengine 客户端可能得到的服务端错误码以及所要采取的相应动作。所有语言的连接器在使用原生连接方式时也会将这些错误码返回给连接器的调用者。
rpc
错误码 | 错误描述 | 可能的出错场景或者可能的原因 | 建议用户采取的措施 |
---|---|---|---|
0x8000000B | Unable to establish connection | 1.网络不通 2.多次重试、依然不能执行请求 | 1.检查网络 2.分析日志,具体原因比较复杂 |
0x80000013 | Client and server's time is not synchronized | 1.客户端和服务端不在同一个时区 2.客 户端和服务端在同一个时区,但是两者的时间不同步,相差超过 900 秒 | 1.调整到同一个时区 2.校准客户端和服务端的时间 |
0x80000015 | Unable to resolve FQDN | 设置了无效的 fqdn | 检查fqdn 的设置 |
0x80000017 | Port already in use | 端口已经被某个服务占用的情况下,新启的服务依然尝试绑定该端口 | 1.改动新服务的服务端口 2.杀死之前占用端口的服务 |
0x80000018 | Conn is broken | 由于网络抖动或者请求时间过长(超过 900 秒),导致系统主动摘掉连接 | 1.设置系统的最大超时时长 2.检查请求时长 |
0x80000019 | Conn read timeout | 1.请求是否处理时间过长 2. 服务端处理不过来 3. 服务端已经死锁 | 1. 显式配置readTimeout参数,2. 分析taosd上堆栈 |
0x80000020 | some vnode/qnode/mnode(s) out of service | 多次重试之后,仍然无法连接到集群,可能是所有的节点都宕机了,或者存活的节点不是 Leader 节点 | 1.查看 taosd 的状态、分析 taosd 宕机的原因 2.分析存活的 taosd 为什么无法选取 Leader |
0x80000021 | some vnode/qnode/mnode(s) conn is broken | 多次重试之后,仍然无法连接到集群,可能是网络异常、请求时间太长、服务端死锁等问题 | 1.检查网络 2.请求的执行时间 |
0x80000022 | rpc open too many session | 1.并发太高导致占用链接已经到达上限 2.服务端的 BUG,导致连接一直不释放 | 1.调整配置参数 numOfRpcSessions 2.调整配置参数 timeToGetAvailableConn 3.分析服务端不释放的连接的原因 |
0x80000023 | rpc network error | 1. 网络问题,可能是闪断,2. 服务端crash | 1. 检查网络 2. 检查服务端是否重启 |
0x80000024 | rpc network bus | 1.集群间互相拉数据的时候,没有拿到可用链接,或者链接数目已经到上限 | 1.是否并发太高 2. 检查集群各个节点是否有异常,是否出现了死锁等情况 |
0x80000025 | http-report already quit | 1. http上报出现的问题 | 内部问题,可以忽略 |
0x80000026 | rpc module already quit | 1.客户端实例已经退出,依然用该实例做查询 | 检查业务代码,是否用错 |
0x80000027 | rpc async module already quit | 1. 引擎错误, 可以忽略, 该错误码不会返回到用户侧 | 如果返回到用户侧, 需要引擎侧追查问题 |
0x80000028 | rpc async in proces | 1. 引擎错误, 可以忽略, 该错误码不会返回到用户侧 | 如果返回到用户侧, 需要引擎侧追查问题 |
0x80000029 | rpc no state | 1. 引擎错误, 可以忽略, 该错误码不会返回到用户侧 | 如果返回到用户侧, 需要引擎侧追查问题 |
0x8000002A | rpc state already dropped | 1. 引擎错误, 可以忽略, 该错误码不会返回到用户侧 | 如果返回到用户侧, 需要引擎侧追查问题 |
0x8000002B | rpc msg exceed limit | 1. 单个rpc 消息超过上限,该错误码不会返回到用户侧 | 如果返回到用户侧, 需要引擎侧追查问题 |
common
错误码 | 错误描述 | 可能的出错场景或者可能的原因 | 建议用户采取的措施 |
---|---|---|---|
0x80000100 | Operation not supported | 操作不被支持、不允许的场景 | 检查操作是否有误,确认该功能是 否被支持 |
0x80000102 | Out of Memory | 客户端或服务端内存分配失败的场景 | 检查客户端、服务端内存是否充足 |
0x80000104 | Data file corrupted | 1.存储数据文件损坏 2.udf 文件无法创建 | 1.联系涛思客户支持 2.确认服务端对临时目录有读写创建文件权限 |
0x80000106 | too many Ref Objs | 无可用ref资源 | 保留现场和日志,github 上报 issue |
0x80000107 | Ref ID is removed | 引用的ref资源已经释放 | 保留现场和日志,github 上报 issue |
0x80000108 | Invalid Ref ID | 无效ref ID | 保留现场和日志,github 上报 issue |
0x8000010A | Ref is not there | ref 信息不存在 | 保留现场和日志,github 上报 issue |
0x80000110 | Unexpected generic error | 系统内部错误 | 保留现场和日志,github 上报 issue |
0x80000111 | Action in progress | 操作进行中 | 1.等待操作完成 2.根据需要取消操作 3.当超出合理时间仍然未完成可保留现场和日志,或联系客户支持 |
0x80000112 | Out of range | 配置参数超出允许值范围 | 更改参数 |
0x80000115 | Invalid message | 消息错误 | 1. 检查是否存在节点间版本不一致 2. 保留现场和日志,github上报issue |
0x80000116 | Invalid message len | 消息长度错误 | 1. 检查是否存在节点间版本不一致 2. 保留现场和日志,github上报issue |
0x80000117 | Invalid pointer | 无效指针 | 保留现场和日志,github上报issue |
0x80000118 | Invalid parameters | 无效参数 | 保留现场和日志,github上报issue |
0x80000119 | Invalid config option | 无效配置 | 保留现场和日志,github上报issue |
0x8000011A | Invalid option | 无效选项 | 保留现场和日志,github上报issue |
0x8000011B | Invalid json format | JSON格式错误 | 保留现场和日志,github上报issue |
0x8000011C | Invalid version number | 无效版本格式 | 保留现场和日志,github上报issue |
0x8000011D | Invalid version string | 无效版本格式 | 保留现场和日志,github上报issue |
0x8000011E | Version not compatible | 节点间版本不兼容 | 检查各节点版本(包括服务端与客户端),确保节点间版本一致或兼容 |
0x8000011F | Checksum error | 文件checksum校验失败 | 保留现场和日志,github上报issue |
0x80000120 | Failed to compress msg | 压缩失败 | 保留现场和日志,github上报issue |
0x80000121 | Message not processed | 消息未被正确处理 | 保留现场和日志,github上报issue |
0x80000122 | Config not found | 未找到配置项 | 保留现场和日志,github上报issue |
0x80000123 | Repeat initialization | 重复初始化 | 保留现场和日志,github上报issue |
0x80000124 | Cannot add duplicate keys to hash | 添加重复key数据到哈希表中 | 保留现场和日志,github上报issue |
0x80000125 | Retry needed | 需要应用进行重试 | 应用按照API使用规范进行重试 |
0x80000126 | Out of memory in rpc queue | rpc消息队列内存使用达到上限 | 1. 检查确认系统负载是否过大 2. (如必要)通过配置rpcQueueMemoryAllowed增大rpc消息队列内存上限 3. 如果问题还未解决,保留现场 和日志,github上报issue |
0x80000127 | Invalid timestamp format | 时间戳格式错误 | 检查并确认输入的时间戳格式正确 |
0x80000128 | Msg decode error | 消息解码错误 | 保留现场和日志,github上报issue |
0x8000012A | Not found | 未找到内部缓存信息 | 保留现场和日志,github上报issue |
0x8000012B | Out of disk space | 磁盘空间不足 | 1. 检查并确保数据目录、临时文件夹目录有足够磁盘空间 2. 定期检查维护上述目录,确保空间足够 |
0x80000130 | Database is starting up | 数据库启动中,暂无法提供服务 | 检查数据库状态,待系统完成启动后继续或重试 |
0x80000131 | Database is closing down | 数据库正在或已经关闭,无法提供服务 | 检查数据库状态,确保系统工作在正常状态 |
0x80000132 | Invalid data format | 数据格式错误 | 1. 保留现场和日志,github上报issue 2. 联系涛思客户支持 |
0x80000133 | Invalid operation | 无效的或不支持的操作 | 1. 修改确认当前操作为合法有效支持的操作,检查参数有效性 2. 如果问题还未解决,保留现场和日志,github上报issue |
0x80000134 | Invalid value | 无效值 | 保留现场和日志,github上报issue |
0x80000135 | Invalid fqdn | 无效FQDN | 检查配置或输入的FQDN值是否正确 |
0x8000013C | Invalid disk id | 不合法的disk id | 建议用户检查挂载磁盘是否失效或者使用参数 diskIDCheckEnabled 来跳过磁盘检查 |