近期,Apache DolphinScheduler 社區激動地宣佈 3.2.1 版本的發佈。此次更新不僅著力解決了前一版本(3.2.0)中遺留的問題,而且引入了一系列的功能增強和優化措施。 原先的問題主要源於部分重要代碼在發佈過程中未能成功合併(cherry-pick),加之這部分代碼的合併過程較 ...
近期,Apache DolphinScheduler 社區激動地宣佈 3.2.1 版本的發佈。此次更新不僅著力解決了前一版本(3.2.0)中遺留的問題,而且引入了一系列的功能增強和優化措施。
原先的問題主要源於部分重要代碼在發佈過程中未能成功合併(cherry-pick),加之這部分代碼的合併過程較為複雜,因此,3.2.1 版本基於 2024年2月的 dev
分支代碼,剔除了一些不相容的特性後發佈。
全部 Changelog:https://github.com/apache/dolphinscheduler/releases/tag/3.2.1
下載地址:https://dolphinscheduler.apache.org/zh-cn/download/3.2.1
主要修複和功能增強
新特性和優化
- SQL 任務現支持使用 druid 進行 SQL 分割,支持設置
maxRows
。 - 支持自定義 HTTP body 渲染。
- Kubernetes (k8s) 現支持自定義標簽 (label)。
- 新增支持阿裡雲語音告警源。
- Helm chart 現支持 JDBC 註冊中心;支持任務類型過濾。
關鍵問題修複
- 修複從 3.1.x 升級到 3.2.x 的失敗問題。
- 解決任務組件在使用資源中心時只能使用絕對全路徑的限制。
- 修複啟動參數優先順序設置錯誤。
- 解決數據質量任務無法執行的問題。
- 修複任務組隊列失效問題。
- 解決任務定義列表修改時任務消失的問題。
- 修複特殊情況下刪除工作流實例導致的空指針異常(NPE)。
- 解決 Master 和 Worker 之間的通信問題。
- 修複 Kyuubi 數據源在 UI 中不顯示的問題。
安全性改進
此版本也對幾個關鍵的 CVE 問題進行了修複,包括:
- CVE-2023-49250
- CVE-2023-51770
- CVE-2023-50270
- CVE-2023-49068
- CVE-2023-49109
BugFix
- fix: Resource relate path invalid when tenant change (#15581)
- [fix][worker]:Fix the issue of missing disk usage reporting information in the worker (#15565)
- [Fix] Fix WorkflowInstance batch start failed will throw incorrect exception. (#15577)
- Fix create parent directory will cause FileAlreadyExistsException (#15576)
- Fix Recover WorkflowInstance will casue workflow Instance state is success but task insatnce is killed/paused (#15574)
- fix: data quality may fail in docker mode (#15563)
- fix: start param for wf not work (#15544)
- fix: ddl without drop exists (#14128)
- fix switch js (#15487)
- fix: data quality can not use (#15551)
- Fix createFile with permission will not work (#15556)
- [Bug][force-success] force success add end time (#15144)
- [Bug][Task Api] fix 'MACPATTERN' in ProcessUtils and cover all cases on MacOS in ProcessUtilsTest (#15480)
- Fix TaskGroupQueue will never be wakeup due to wakeup failed at one time (#15528)
Exit JVM when OOM (#15538) - Fix exception occur in RpcServer side, it will not be sent to RpcClient (#15536)
- front: When you edit a task in the task definition list, the front task list is displayed (#12819)
- [Fix] [Bug] Change default version of Workflow/TaskDefinition to
1
(#15498) - [Bug] Fix a bug, When the worker service offline, workerNodeInfo cache in master cannot delete the offline worker (#15459)
- fix workflow will have same updatetime when import (#14810)
- [BUG] #15013 Fix retryInterval in RetryPolicy will never be used in RetryUtils (#15014)
- Throw IllegalArgumentException if parse time placeholder error (#15514)
- Fix PostgresqlDatabaseContainerProvider get Image is incorrect (#15434)
- [Bug][Api] Fix NPE when deleting a workflow instance (#15485)
- Directly Throw exception when taskInstancy log path is empty which log need to be queried (#15511)
- Fix notify failover WorkflowInstance will cause NPE (#15499)
- [HotFix] Fix createTaskInstanceWorkingDirectory failed if the old path exist (#15377)
- [bug] Exception when using host in ipv6 format (#14040)
- [Bug][Master]serial_wait strategy workflow unable to wake up (#15270)
- [BUG][Task] fix java task classpath (#15470)
- [Bug] [Audit log] Fix Audit log UI query error (#15427)
- [Bug][Registry] Optimizing waiting strategy (#15223)
- Set TaskGroupQueue updateTime when force start (#15510)
- TaskGroupPriority only compare When TaskGroup is same (#15486)
- Remove taskQueue and looper in worker (#15292)
- Display the resource file doesn't exist message in task create page (#15350)
- Recreate new TaskInstance Working Directory when exist in worker (#15358)
- [Bug] Close SSH session after remote shell finish (#15348)
- Fix check value rather than key in AbstractDataSourceProcessor#checkOther (#15351)
- Fix resource file usage(Delete Resource/ResourceUser which is deprecated)
- [Bug][Master] send ACK event timeout (#15346)
- Fix k8sTaskExecutionContext setting configYaml (#15116)
- [Fix #15129] [Dependent] The date rules of the dependent node are ambiguous. (#15289)
- Fix failover Master might not release taskGroup (#15287)
- [HotFix] Fix TaskOutputParameterParser might OOM if meed a bad output param expression (#15264)
- [Bug-15215][Api] non-admin should not modify tenantId and queue (#15254)
- Set the tenant as the owner in final stage (#15256)
- Use chown to set the file owner (#15240)
- [Fix] Change HTTP plugin timeout param to number type (#15234)
- fix switch condition (#15228)
- Fix docs style is incorrect by CI pass (#15167)
- Expire session when update user password (#15219)
- Fix home page workflow instance miss status (#15193)
- fix security issue (#15192)
- fix can't stop bug (#15191)
- Remove API Result in Service (#15181)
- Exclude DataSourceAutoConfiguration in worker server (#15169)
- [Bug] Fix TriggerRelationMapper cannot work due to miss DatabaseIdProvider (#15153)
- Fix spotless (#15164)
- Fix incorrect button display text (#15160)
- [Fix][Data Quality] Change t_ds_dq_rule_input_entry field name fix PostgreSQL not support value issue (#14992)
- fix missing 'KYUUBI' in droplist of datasource (#15140)
- [Bug] Fix endless loop (#15092)
- fix: execute sql error: datasource plugin 'doris' is not found。 (#15123)
- Fix confusing constant string for unit convertor (#15126)
- [fix-#11726] fix error when set connection proerty both in the URL and an argument (#15093)
- [Fix-15072][Resource Center] Non-admin user can not query resource recursively (#15097)
- [E2E][Bug] Fix k8s-e2e (#15098)
- Fix SqlTask cannot split the given sql when browser in windows (#15062)
- [Fix-15036] [API] Fix task definition edit doesn't work (#14801)
- remove sub workflow finish notify (#15057)
- Fix missing Kyuubi type in UI (#15051)
- [Fix-14885][pom] fix spotless format file path (#14889)
- Fix When the task instance status is 'STOP' (#14967)
- Revert "[Bug] [Resource] fix resource delete bug (#15003)
- [Bug] [Resource] fix resource delete bug (#15003)
Delete File generated by UT (#15022)
Improvement
- [Improvement][UT] Improve Worker registry coverage (#15380)
- refactor comments & function name for confuse (#15546)
- [Improvement][HTTP] support custom rendering of http body (#15531)
- [improvement][api] Fix typo for controllers (#15438)
- [Feature-15475][DinkyTask] DinkyTask supports Dinky-1.0.0 and common sql (#15479)
- [Improvement][K8S]Optimize MDC for K8S tasks (#15390)
- Enable set ServerLoadProtection fot Master/Worker (#15439)
- [Feature] timed scheduler Improvement (#15449)
- [Improvement][E2E] add e2e javatask case (#15469)
- [Enhancement][API]Enhance mysql connection properties (#15433)
- [Improvement][E2E]e2e improve add workflow httpTask e2e case (#15420)
- Add config for defaultTenantEnabled (#15391)
- Use DefaultUncaughtExceptionHandler to log the uncached exception (#15496)
- adjust the sequence of alarm group and add validate (#15382)
- Use Druid to split sql (#15367)
- optimize add select filter (#15378)
- [Improvement][Helm] using helm-docs to generate docs automatically (#15299)
- [Improvement][K8S] Custom label of a K8S task can be passed to the pod (#15369)
- Optimize server startup log (#15362)
- [Improvement][E2E] support e2e compose v2 fix code style (#15325)
- [Improvement] Ensure that HttpUtils can only get result from certification URL (#15288)
- delete debugger (#15316)
- Set maxRows in SqlTask (#15342)
- [Feature-15146][dolphinscheduler-task-sqoop] add sqoop source/target type (#15146)
- [Feature-15248][dolphinscheduler-alert-plugins] add alert plugin aliyun-voice (#15248)
- [Improvement-15260][dolphinscheduler-datasource-hana] add hana related dependencies (#15260)
- fail-fast for dependent check (#15197)
- [Improvement] Move delay calculation to Master (#15278)
- Add dolphinscheduler-extract-common module (#15266)
- Support parse task output params under multiple log (#15244)
- [Improvement-15009][Parameter] Change project parameter value to text (#15010)
- Remove spring cache for dao (#15184)
- [Improvement] Clean up Scheduler logic (#15198)
- [Improvement][Alert] Add a test send feature when creating an alert instance (#15163)
- [Improvement][Helm] support task type filter (#15179)
- [Improvement][Resource Center] Display brief file name in file-details page (#15137)
- [Improvement][Alert] Add timeout params for HTTP plugin (#15174)
- [feature#14654] alert-spi support prometheus alertmanager (#15079)
- [Improvement][K8S] Remove ResourceQuota (#14991)
- [Improvement] Refactoring K8S task plugin with connections managed in connection center (#14977)
- [DSIP-19] Support sagemaker connections in the connection center, as well as external connections to the connection center in sagemaker tasks (#14976)
- [DSIP-19] Support zeppelin connections in the connection center, as well as external connections to the connection center in zeppelin tasks (#14434)
- [Feature-14832][Listener]Implementation of Listener Mechanism (#14981)
- Remove mapper usage in tools (#15073)
- [Feature-14678][Master][UI]Dependent task parameter passing (#14702)
- Add IT for mysql5/postgresql16 initialize/upgrade (#15063)
- Add IT for dolphinscheduler-tools module (#15043)
- Set kubectl version to v1.28.3 (#15053)
- Add dolphinscheduler-dao-plugin module (#15019)
- [improvement][Resources] Improve details page return to the previous list page (#14951)
- [Improvement][Alert] Alert plugin enhance fail message (#15024)
- [Improvement][Registry][Jdbc] Add jdbc registry config in helm charts (#14431)
- [Improvement][Master] Calculate the remainTime then we set the delay execution. (#15012)
Document
- [Doc][Docker] fix typo on start with docker (#15534)
- [Doc] remove skywalking, update note (#15028)
- Change download url in backend.yml (#15526)
- [Doc][K8S] Add DS K8S Operator into k8s deployment character (#15516)
- Add guideline link into DolphinScheduler mail list (#15447)
- Remove unused cache-evict.png (#15220)
- [Doc-15500][Task] Update cli opts of spark and flink (#15501)
- doc write wrong,should be MinIO it's not MinION (#15395)
- [Doc]remove temporary markdown comments (#15385)
- doc: Classify docs to avoid misleading (#15282)
- Add deploy on Terraform on README (#15189)
- Modify the documentation that python task will not work properly when '\n' indicates the presence of a variable and needs to use 'repr(value)' (#15145)
- [Docs] fix typo (#15032)
Chore
- merge schema 330 into 321 and change docs (#15582)
- Set the workflow instance ready state to running in failover (#15572)
- cp: Reduce the size of tarball to continue ASF release (#15004)
- chore: Docs change for 3.2.1 release (#15539)
- [DS-15489][style]rename the vo object suffix (#15504)
致謝
感謝所有貢獻者的辛勤付出,特別是以下成員(排名不分先後):
致謝名單 | ||
---|---|---|
AliceXiaoLu | Gallardot | clovelll |
BaiJv | John Huang | davidzollo |
CommandCV | JohnZp | dbac |
Dyqer | Orange-Summer | destroydestiny |
EricGao888 | Radeity | devosend |
SbloodyS | SusurHe | fuchanghai |
aiwenmo | arlendp | imizao |
c3Vu | caishunfeng | imp2002 |
izualzhy | kevinkelin | lenboo |
lgcareer | liunaijie | liyou |
lizhenglei | ly109974 | pegasas |
qingwli | reele | rickchengx |
ruanwenjun | sdhzwc | sleo |
tangjiaolong | xdu-chenrj | xinxingi |
xjlgod | xujiaqiang | zhanqian |
zhaohehuhu | zhihuasu | zhongjiajie |
zhuangchong | zhutong6688 |
本文由 白鯨開源 提供發佈支持!