-
Notifications
You must be signed in to change notification settings - Fork 5k
Description
Search before asking
- I had searched in the issues and found no similar issues.
What happened
Master task dispatch failed: encountered a null key in a parameter map, which violates JSON serialization rules;
The dolphinscheduler-master.log log file contains a large number of the following error messages.
`
[WI-751315][TI-2077572] - 2025-11-19 17:00:08.610 ERROR [WorkerGroupTaskDispatcher-default] o.a.d.e.b.s.JsonSerializer:[67] - serializeToString exception!
com.fasterxml.jackson.databind.JsonMappingException: Null key for a Map not allowed in JSON (use a converting NullKeySerializer?) (through reference chain: org.apache.dolphinscheduler.task.executor.operations.TaskExecutorDispatchRequest["taskExecutionContext"]->org.apache.dolphinscheduler.plugin.task.api.TaskExecutionContext["prepareParamsMap"]->java.util.HashMap["null"])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:283)
at com.fasterxml.jackson.databind.SerializerProvider.mappingException(SerializerProvider.java:1370)
at com.fasterxml.jackson.databind.SerializerProvider.reportMappingProblem(SerializerProvider.java:1266)
at com.fasterxml.jackson.databind.ser.impl.FailingSerializer.serialize(FailingSerializer.java:32)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeFields(MapSerializer.java:791)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serializeWithoutTypeInfo(MapSerializer.java:764)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:720)
at com.fasterxml.jackson.databind.ser.std.MapSerializer.serialize(MapSerializer.java:35)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:732)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:772)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:732)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:772)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:479)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:318)
at com.fasterxml.jackson.databind.ObjectMapper._writeValueAndClose(ObjectMapper.java:4719)
at com.fasterxml.jackson.databind.ObjectMapper.writeValueAsString(ObjectMapper.java:3964)
at org.apache.dolphinscheduler.extract.base.serialize.JsonSerializer.serialize(JsonSerializer.java:65)
at org.apache.dolphinscheduler.extract.base.StandardRpcRequest.of(StandardRpcRequest.java:42)
at org.apache.dolphinscheduler.extract.base.client.SyncClientMethodInvoker.invoke(SyncClientMethodInvoker.java:43)
at org.apache.dolphinscheduler.extract.base.client.ClientInvocationHandler.invoke(ClientInvocationHandler.java:56)
at com.sun.proxy.$Proxy209.dispatchTask(Unknown Source)
at org.apache.dolphinscheduler.server.master.engine.task.client.PhysicalTaskExecutorClientDelegator.dispatch(PhysicalTaskExecutorClientDelegator.java:78)
at org.apache.dolphinscheduler.server.master.engine.task.client.TaskExecutorClient.dispatch(TaskExecutorClient.java:54)
at org.apache.dolphinscheduler.server.master.engine.task.dispatcher.WorkerGroupDispatcher.doDispatchTask(WorkerGroupDispatcher.java:94)
at org.apache.dolphinscheduler.server.master.engine.task.dispatcher.WorkerGroupDispatcher.run(WorkerGroupDispatcher.java:79)
[WI-751315][TI-2077572] - 2025-11-19 17:00:08.611 ERROR [WorkerGroupTaskDispatcher-default] o.a.d.s.m.e.t.d.WorkerGroupDispatcher:[102] - Dispatch Task: 2077572 failed will retry after: 60000/ms
`
What you expected to happen
The Master is able to dispatch this task normally
How to reproduce
Whenever there is a parameter with a null key.
mysql> select id,task_type,workflow_instance_id,task_params from t_ds_task_instance where id = 2077572 \G;
*************************** 1. row ***************************
id: 2077572
task_type: SHELL
workflow_instance_id: 751315
task_params: {"localParams":[],"rawScript":"#!/bin/bash\nset -e\n\n\n \necho "===================================="","resourceList":[{"resourceName":"hdfs://xxx/dolphinscheduler/default/resources/123.sql"}]}
mysql> select global_params from t_ds_workflow_instance where id = 751315 \G;
*************************** 1. row ***************************
global_params: [{"prop":null,"direct":"IN","type":"VARCHAR","value":""}]
Anything else
No response
Version
dev
Are you willing to submit PR?
- Yes I am willing to submit a PR!
Code of Conduct
- I agree to follow this project's Code of Conduct