dromara / dromara/liteflow

关于FlowExecutor 填充元数据后,重新获取数据后,产生数据丢失和线程不安全的问题

Open
#46 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
3.9k
Forks
525
PR merge metrics
No merged PRs in 30d

Description

我这边在使用 liteflow时 遇到一个问题 基于 liteflow-core 2.6.7
如上图 线程 29 和 30 在 FlowExecutor 装填参数的 时候 row 都是有值 ,而在 ActionComponent(NodeComponent的实现类)中获取到 slot.getRequestData() 的时候 ,row被置空了 而且 线程29 和 线程30 ,数据被污染了(被覆盖了),现象是随机出现的,同样的数据 前一次可能失败,后面的都是成功的 ,问题的发生没有规律性
请问 有遇到过这个情况吗?
![微信图片_20230911134425](https://github.com/dromara/liteflow/assets/63762949/ed0cead1-6489-459c-bd21-5a156b8df026)
![微信图片_20230911134425_1](https://github.com/dromara/liteflow/assets/63762949/e4a7387d-b86f-4444-a8b4-bf214e7bc4a9)

关于日志是输出的补充

2023-09-11 13:11:11.238 INFO 16704 [http-nio-9003-exec-30] com.yomahub.liteflow.core.FlowExecutor slot[0] offered
2023-09-11 13:11:11.239 INFO 16704 [http-nio-9003-exec-29] com.yomahub.liteflow.core.FlowExecutor slot[0] offered
2023-09-11 13:11:11.239 INFO 16704 [http-nio-9003-exec-29] com.yomahub.liteflow.core.FlowExecutor requestId[zXVPZq4wdi8RqBrmwedJk] has generated
2023-09-11 13:11:11.239 INFO 16704 [http-nio-9003-exec-30] com.yomahub.liteflow.core.FlowExecutor requestId[EX9O89VV33A2agXpS5tmF] has generated

线程 29 和 30 生成的requestId 是不同的 但是 在slot 槽位的获取上,却同时获取到了 slot[0]

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.