dolphinscheduler调度中心使用bug记录

256 阅读1分钟

bug描述

dolphinscheduler调度中心在生产环境使用时,偶尔会出现调度任务启动,一直在执行中的状态,进入到详情页面,看不到节点的执行状态,如下图所示。结束任务后页面没有任何错误提示,也不能重跑,再次启动任务结果一样,后续去看日志发现一直在报Expected one result (or null) to be returned by selectOne(), but found: 2,上github仓库找对应的issuse,发现这个bug是由于后端接口没有做幂等性,存在同一条数据保存了两份在数据库,只是id不一致的bug。issuse地址

image.png

解决方案

找到dolphinscheduler数据库中的t_ds_task_definition和t_ds_task_definition_log表,执行如下SQL

SELECT 
    CODE,
    NAME,
    version,
    MAX( id ) AS max_id 
FROM
	t_ds_task_definition_log 
GROUP BY
	CODE,
	NAME,
	version 
HAVING
	COUNT(*) > 1;

结果如下

微信截图_20230616153409.png

微信截图_20230616153331.png

找到重复的数据后,将其删除即可正常启动服务了