You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by bc...@apache.org on 2016/10/17 21:02:58 UTC
[trafficserver] 03/03: TS-4879: Checking con.fd == NO_FD in
NetAccept::do_blocking_accept()
This is an automated email from the ASF dual-hosted git repository.
bcall pushed a commit to branch 7.0.x
in repository https://git-dual.apache.org/repos/asf/trafficserver.git
commit 85ca5b7c2895cd6115dacbcc8a061fb96cce3bc7
Author: Oknet Xu <xu...@skyguard.com.cn>
AuthorDate: Tue Sep 20 21:06:14 2016 +0800
TS-4879: Checking con.fd == NO_FD in NetAccept::do_blocking_accept()
(cherry picked from commit cd3f83af040f9505a3224a41ce7de294899c760e)
---
iocore/net/UnixNetAccept.cc | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/iocore/net/UnixNetAccept.cc b/iocore/net/UnixNetAccept.cc
index 441275c..c9e1371 100644
--- a/iocore/net/UnixNetAccept.cc
+++ b/iocore/net/UnixNetAccept.cc
@@ -243,6 +243,14 @@ NetAccept::do_blocking_accept(EThread *t)
continue;
}
+ // The con.fd may exceed the limitation of check_net_throttle() because we do blocking accept here.
+ if (check_emergency_throttle(con)) {
+ // The `con' could be closed if there is hyper emergency
+ if (con.fd == NO_FD) {
+ return 0;
+ }
+ }
+
// Use 'NULL' to Bypass thread allocator
vc = (UnixNetVConnection *)this->getNetProcessor()->allocate_vc(NULL);
if (unlikely(!vc || shutdown_event_system == true)) {
@@ -258,8 +266,6 @@ NetAccept::do_blocking_accept(EThread *t)
vc->apply_options();
- check_emergency_throttle(con);
-
NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, 1);
vc->submit_time = now;
ats_ip_copy(&vc->server_addr, &vc->con.addr);
--
To stop receiving notification emails like this one, please contact
"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>.