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 butex wait_pthread handle EINTR #2086

Merged
merged 1 commit into from
May 5, 2023

Conversation

jenrryyou
Copy link
Contributor

wait_pthread处理被信号中断的情况。
没有这个处理之前,假设butex_wait_from_pthread的timeout设置为100s,但是这个线程每隔10s会被信号中断(如正在进行profile,会定时中断采集线程堆栈),futex_wait_private会返回EINTR,导致butex_wait_from_pthread永远不会超时返回。

src/bthread/butex.cpp Outdated Show resolved Hide resolved
src/bthread/butex.cpp Outdated Show resolved Hide resolved
src/bthread/butex.cpp Outdated Show resolved Hide resolved
@jenrryyou jenrryyou force-pushed the fix_butex_wait_pthread_handle branch from 4d84f91 to 10dc7a2 Compare January 18, 2023 12:19
src/bthread/butex.cpp Outdated Show resolved Hide resolved
src/bthread/butex.cpp Outdated Show resolved Hide resolved
src/bthread/butex.cpp Outdated Show resolved Hide resolved
@jenrryyou jenrryyou force-pushed the fix_butex_wait_pthread_handle branch from 10dc7a2 to 5ed13f8 Compare January 24, 2023 04:17
@wwbmmm
Copy link
Contributor

wwbmmm commented Jan 24, 2023

LGTM

@jamesge
Copy link
Contributor

jamesge commented Jan 25, 2023

能为这种情况增加一个单测么?(bthread的修改可能影响面很大)

@jenrryyou
Copy link
Contributor Author

jenrryyou commented Jan 28, 2023

能为这种情况增加一个单测么?(bthread的修改可能影响面很大)

加了一个单测ButexTest.wait_with_signal_triggered,在这个修复之前是会稳定断言失败

@jenrryyou jenrryyou force-pushed the fix_butex_wait_pthread_handle branch 2 times, most recently from 92288de to 7d67145 Compare May 3, 2023 01:57
@jenrryyou jenrryyou force-pushed the fix_butex_wait_pthread_handle branch from 7d67145 to 3431c19 Compare May 3, 2023 02:00
@jenrryyou
Copy link
Contributor Author

@chenBright 可以帮忙重跑下clang-unittest吗~ 我看了失败的SocketTest.keepalive_input_message的逻辑跟butex无关,本地重跑也是可以通过的,怀疑是这个test case不稳定

@chenBright
Copy link
Contributor

@chenBright 可以帮忙重跑下clang-unittest吗~ 我看了失败的SocketTest.keepalive_input_message的逻辑跟butex无关,本地重跑也是可以通过的,怀疑是这个test case不稳定

done

@wwbmmm wwbmmm merged commit 32e59eb into apache:master May 5, 2023
16 checks passed
yanglimingcn pushed a commit to yanglimingcn/brpc that referenced this pull request Jun 25, 2023
yanglimingcn pushed a commit to yanglimingcn/brpc that referenced this pull request Oct 31, 2023
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.

None yet

5 participants