Currently, the query option idle_session_timeout specifies a timeout in seconds after which all running queries of that idle session will be cancelled and no new queries can be issued to it. However, the idle session will remain open and it needs to be closed explicitly. Please see the documentation for details.
This behavior may be undesirable as each session still consumes an Impala frontend service thread. The number of frontend service threads is bound by the flag fe_service_threads. So, in a multi-tenant environment, an Impala server can have a lot of idle sessions but they still consume against the quota of fe_service_threads. If the number of sessions established reaches fe_service_threads, all new session creations will block until some of the existing sessions exit. There may be no time bound on when these zombie idle sessions will be closed and it's at the mercy of the client implementation to close them. In some sense, leaving many idle sessions open is a way to launch a denial of service attack on Impala.
To fix this situation, we should have an option to forcefully close a session when it's considered idle so it won't unnecessarily consume the limited number of frontend service threads. cc'ing Zoram Thanga