| Summary: | cancel ping timer in case of socket fd error or iberror | ||
|---|---|---|---|
| Product: | [Community] GlusterFS | Reporter: | Krishna Srinivas <krishna> |
| Component: | protocol | Assignee: | shishir gowda <sgowda> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | mainline | CC: | gluster-bugs, nsathyan, vijay |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | --- | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
|
Description
Krishna Srinivas
2010-05-07 16:12:43 UTC
when client_ping_cbk() is called not because of timer getting expired but because of socket fd error (in case of tcpip) or ib error, we need to clean up the associated timer, else timer will be called after 42 secs which will disconnect a valid active connectoin.
client_ping_cbk():
if (op_ret == -1) {
/* timer expired and transport bailed out */
gf_log (this->name, GF_LOG_DEBUG, "timer must have expired");
goto out;
}
if op_ret is -1 the do:
if (conn->ping_timer != NULL) {
gf_timer_call_cancel (trans->xl->ctx, conn->ping_timer);
}
PATCH: http://patches.gluster.com/patch/3911 in master (Cancel ping timer if socket or ib error) |