[
https://issues.apache.org/jira/browse/TS-4879?focusedWorklogId=29313&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29313
]
ASF GitHub Bot logged work on TS-4879:
--------------------------------------
Author: ASF GitHub Bot
Created on: 19/Sep/16 15:49
Start Date: 19/Sep/16 15:49
Worklog Time Spent: 10m
Work Description: Github user jpeach commented on a diff in the pull
request:
https://github.com/apache/trafficserver/pull/1033#discussion_r79421321
--- Diff: iocore/net/UnixNetVConnection.cc ---
@@ -1273,14 +1273,21 @@ UnixNetVConnection::connectUp(EThread *t, int fd)
con.is_bound = true;
}
+ if (check_emergency_throttle(con)) {
+ // `con' could be closed if there is hyper emergency
+ if (con.fd == NO_FD) {
+ NET_SUM_GLOBAL_DYN_STAT(net_connections_currently_open_stat, -1);
+ // set errno force to EMFILE (reached limit for open file
descriptors)
+ res = errno = EMFILE;
--- End diff --
``connectUP`` returns ``CONNECT_SUCCESS``, ``CONNECT_FAILURE``, or
``-errno``.
Issue Time Tracking
-------------------
Worklog Id: (was: 29313)
Time Spent: 1h 20m (was: 1h 10m)
> NetVC leaks while hyper emergency occur on check_emergency_throttle()
> ---------------------------------------------------------------------
>
> Key: TS-4879
> URL: https://issues.apache.org/jira/browse/TS-4879
> Project: Traffic Server
> Issue Type: Bug
> Components: Core
> Reporter: Oknet Xu
> Assignee: Oknet Xu
> Time Spent: 1h 20m
> Remaining Estimate: 0h
>
> The con could be closed if hyper emergency occur on
> check_emergency_throttle().
> But we did not check the con.fd while we get return from
> check_emergency_throttle().
> For hyper emergency:
> - The socket fd is removed from epoll while it is closed.
> - A NetVC with a closed socket fd is created and callback NET_EVENT_OPEN to
> SM.
> Thus:
> - The NetVC will never triggered by NetHandler.
> - Only InactivityCop could handle the NetVC and the default timeout value is
> 86400 secs.
> For the counter: net_connections_currently_open_stat
> - It is increased in “connect_re_internal()”
> - It isn't decreased while the con.fd set to NO_FD due to hyper emergency
> - Because it is decreased in close_UnixNetVConnection() only con.fd != NO_FD.
> (TS-4178)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)