You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Oknet Xu (JIRA)" <ji...@apache.org> on 2016/09/19 06:00:27 UTC

[jira] [Updated] (TS-4879) NetVC leaks while hyper emergency occur on check_emergency_throttle()

     [ https://issues.apache.org/jira/browse/TS-4879?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oknet Xu updated TS-4879:
-------------------------
    Description: 
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)

  was:
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.


> 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
>
> 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)