开发者社区 问答 正文

ProcessTermin has an error! Retry

导致任务被挂起,然后一直重试消费 错误如下: 21-2019-04-20-38.log:2019-04-20 18:52:09.175 [pipelineId = 21,taskName = ProcessTermin] INFO com.alibaba.otter.node.etl.select.SelectTask - [21] ProcessTermin has an error! retry... 21-2019-04-20-38.log-com.alibaba.otter.node.etl.select.exceptions.SelectException: unmatched terminId, SelectTask batchId = 2581683 processId = 2572237 and Termin Event: TerminEventData[type=NORMAL,code=setl,desc=,currNid=2,processId=2572267,startTime=1555757499440,endTime=1555757499531,firstTime=1555757499000,batchId=2581713,number=1,size=,exts=,pipelineId=21]

原提问者GitHub用户

展开
收起
古拉古拉 2023-06-14 21:15:30 100 分享 版权
2 条回答
写回答
取消 提交回答
  • 根据日志提示,错误的原因是任务没有正确地处理终止事件(TerminEvent)而导致的异常。具体地说,“unmatched terminId” 表示在终止事件中的 batchId 和 processId 分别为 2581713 和 2572267,但是在 SelectTask 中的 batchId 和 processId 分别为 2581683 和 2572237,两者不匹配导致异常。

    有多种原因可能会导致这个错误,例如:

    1. 数据源在一段时间内没有产生新的数据,但是任务仍然会不断重试消费这个任务,这样可能会导致消费异常。

    2. 源数据格式发生变化,但是同步任务仍然按照旧的格式进行消费,这也会导致不匹配的异常。

    3. MySQL 等源数据库发生异常,此时任务可能会一直重试消费导致异常,也可能需要进行重启或者手动调整同步任务配置等操作来解决。

    为了解决这个问题,您可以尝试以下几种方法:

    1. 检查数据源是否正常,并确保源数据库的数据格式和同步任务的配置相匹配。

    2. 在 OTTER 中增加一些配置参数,以达到终止任务的目的(例如设置 task.queueSize = 0),来尝试强制结束任务并重新启动。

    3. 对于异常情况,可以尝试重新启动同步任务并手动消费数据,或者对配置进行适当调整。

    2023-06-16 08:36:57
    赞同 展开评论
  • unmatched terminId,停用启用一下任务

    原回答者GitHub用户agapple

    2023-06-14 22:15:34
    赞同 展开评论
问答地址: