-
Notifications
You must be signed in to change notification settings - Fork 142
setting async_disconnecting flag to avoid multiple async rpc disconn #2004
Conversation
e7fa93c to
c9a32b0
Compare
Jenkins CI Result : Motr#1535Motr Test Summary
CppCheck SummaryCppcheck: No new warnings found 👍 |
|
The 'rm-rcredits-ut', full UT, and ST 61,67 have passed more than 20 iterations. |
|
Can one of the admins verify this patch? |
|
retest this please |
c9a32b0 to
75058ee
Compare
|
retest this please |
75058ee to
251945d
Compare
|
This issue/pull request has been marked as |
251945d to
b5f0a0a
Compare
Jenkins CI Result : Motr#1588Motr Test Summary
CppCheck SummaryCppcheck: No new warnings found 👍 |
b5f0a0a to
803340b
Compare
Jenkins CI Result : Motr#1600Motr Test Summary
CppCheck SummaryCppcheck: No new warnings found 👍 |
yatin-mahajan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me.
* async_disconnecting is used to check if waiting is needed. * No need to call session_put() in rm_remote_free(). Because at this moment, maybe some other requests are still in progress. Signed-off-by: Hua Huang <[email protected]>
803340b to
ec62095
Compare
Jenkins CI Result : Motr#1613Motr Test Summary
CppCheck SummaryCppcheck: No new warnings found 👍 |
…eagate#2004) * async_disconnecting is used to check if waiting is needed. * No need to call session_put() in rm_remote_free(). Because at this moment, maybe some other requests are still in progress. Signed-off-by: Hua Huang <[email protected]>
async_disconnecting is used to check if waiting is needed.
No need to call session_put() in rm_remote_free().
Because at this moment, maybe some other requests are still in progress.
Signed-off-by: Hua Huang [email protected]
Problem Statement
While doing Motr shutdown, there might be panic like this:
The problem is that the reverse session connection has been already destroyed and freed.
Design
There are two fixes in this patch.
Because at this moment, maybe some other RM requests are still in progress. The reverse connection will be destroyed in
m0_rpc_service_reverse_sessions_cleanup() while doing system finalization.
m0_rpc_service_reverse_session_put() is already in progress. And this flag is also used to check if a wait is needed.
Coding
Checklist for Author
Testing
Checklist for Author
Impact Analysis
Checklist for Author/Reviewer/GateKeeper
Review Checklist
Checklist for Author
Documentation
Checklist for Author