Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: use released pipeline pointer #1978

Merged
merged 2 commits into from
Dec 18, 2024
Merged

Conversation

Abingcbc
Copy link
Collaborator

@Abingcbc Abingcbc commented Dec 18, 2024

问题

问题一

Flusher在OnSendDone中会将item从队列中移出,后续由于Pipeline被释放,所以导致访问空指针。
修复:在处理之前,先持有Pipeline对象,避免其被释放。

问题二

配置变更时,ProcessRunner在处理完旧Pipeline残留在处理队列的数据时,再将其塞入到发送队列或者Go流水线。

  1. 发送队列:由于发送队列复用,数据会走新流水线。
  2. Go流水线:Go流水线可能已被停止。数据会发送失败。

修复:在处理完之后,统一走新流水线发送数据。

测试

后续在配置变更测试中,统一补充测试用例。

@Abingcbc Abingcbc merged commit 1d02270 into alibaba:main Dec 18, 2024
15 checks passed
@henryzhx8 henryzhx8 added the bug Something isn't working label Dec 19, 2024
@henryzhx8 henryzhx8 added this to the v3.0 milestone Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants