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不停返回EV_ADD事件 #351

Merged
merged 1 commit into from
Sep 18, 2023
Merged

fix不停返回EV_ADD事件 #351

merged 1 commit into from
Sep 18, 2023

Conversation

guonaihong
Copy link
Collaborator

No description provided.

@lesismal lesismal merged commit 21f3f04 into lesismal:master Sep 18, 2023
7 checks passed
@lesismal
Copy link
Owner

奇怪,加上 EV_CLEAR后,TestUDP总是失败、读超时,netstat查看,recv-q里有数据、却没有触发kqueue的读事件。

先把EV_CLEAR去掉了然后TestUD正常了,去掉后我这边测也没有发现不停返回EV_ADD,你那边之前不停返回EV_ADD是什么现象,有复现代码吗我试下。

@lesismal
Copy link
Owner

@guonaihong

@guonaihong
Copy link
Collaborator Author

guonaihong commented Oct 27, 2023

@lesismal 客户端连接不关闭,发一个数据包。在kqueue那边加个断点没有复现吗?
我这几天有点事情。周一才有时间,要不你先去除掉。我周一看下。

我在自己的项目里面都是加上EV_CLEAR的。

@lesismal
Copy link
Owner

我加了日志,没有发现不停EV_ADD,或者说,我还没太理解你说的这个返回 EV_ADD 是什么意思,是指已经添加过的事件?比如EV_ADD Read后不停返回Read事件?

@guonaihong
Copy link
Collaborator Author

我加了日志,没有发现不停EV_ADD,或者说,我还没太理解你说的这个返回 EV_ADD 是什么意思,是指已经添加过的事件?比如EV_ADD Read后不停返回Read事件?

我的印象里面是,kqueue返回时,unix.Read的数据包的长度为0, 但是socket是在的。你先用我提交之前的commit复现下。

@lesismal
Copy link
Owner

我把dev的去掉了EV_CLEAR,没有遇到不停有事件并且read长度为0的

@guonaihong
Copy link
Collaborator Author

guonaihong commented Oct 27, 2023

那我周一再试下。记得当初有个截图描述这个现象的,下次记下操作步骤。
你现在用是黑苹果,还是白苹果测试的?

@lesismal
Copy link
Owner

我是苹果M2环境跑的

@lesismal
Copy link
Owner

unix.Read的数据包的长度为0, 但是socket是在的

这个也应该是你定制了 engine.OnRead 吧?会不会是 for 循环 read,第一次读完了所有但是没有 break、第二次就0了

等你有时间了代码发出来一块看下

@guonaihong
Copy link
Collaborator Author

unix.Read的数据包的长度为0, 但是socket是在的

这个也应该是你定制了 engine.OnRead 吧?会不会是 for 循环 read,第一次读完了所有但是没有 break、第二次就0了

等你有时间了代码发出来一块看下

okk
原装代码测试的。bigws的kqueue的代码我是借鉴的nbio。然后发现这个问题,在nbio一测试也复现了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants