[ https://issues.apache.org/jira/browse/TS-4879?focusedWorklogId=29364&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-29364 ]
ASF GitHub Bot logged work on TS-4879: -------------------------------------- Author: ASF GitHub Bot Created on: 20/Sep/16 03:30 Start Date: 20/Sep/16 03:30 Worklog Time Spent: 10m Work Description: Github user oknet commented on a diff in the pull request: https://github.com/apache/trafficserver/pull/1033#discussion_r79531088 --- 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 -- set res to -errno. Issue Time Tracking ------------------- Worklog Id: (was: 29364) Time Spent: 2h 10m (was: 2h) > 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: 2h 10m > 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)