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