summaryrefslogtreecommitdiff
path: root/pkg/api/server/idle
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2020-10-02 14:50:12 -0700
committerJhon Honce <jhonce@redhat.com>2020-10-05 10:40:23 -0700
commit2fc50f8b13de0c60072effa8a991bcf36da1fded (patch)
treedda662fd0725e2f07c5e948bcb3480517f65f699 /pkg/api/server/idle
parent1b16fcfd14b9e761849e53ac2b83c964ad8ac5a9 (diff)
downloadpodman-2fc50f8b13de0c60072effa8a991bcf36da1fded.tar.gz
podman-2fc50f8b13de0c60072effa8a991bcf36da1fded.tar.bz2
podman-2fc50f8b13de0c60072effa8a991bcf36da1fded.zip
Fixes remote attach and exec to signal IdleTracker
- Fixes issue where remote attach and exec only signaled the IdleTracker on errors. Needs to done anytime after connection has been hijacked - Fixes trying to send multiple http status codes to client - Changes pprof and API server shutdowns to run in parallel - Changes shutdown to run in sync.Once block Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'pkg/api/server/idle')
-rw-r--r--pkg/api/server/idle/tracker.go10
1 files changed, 7 insertions, 3 deletions
diff --git a/pkg/api/server/idle/tracker.go b/pkg/api/server/idle/tracker.go
index 1b378c492..50e41b7bf 100644
--- a/pkg/api/server/idle/tracker.go
+++ b/pkg/api/server/idle/tracker.go
@@ -61,10 +61,14 @@ func (t *Tracker) ConnState(conn net.Conn, state http.ConnState) {
oldActive := t.ActiveConnections()
// Either the server or a hijacking handler has closed the http connection to a client
- if _, found := t.managed[conn]; found {
- delete(t.managed, conn)
- } else {
+ if conn == nil {
t.hijacked-- // guarded by t.mux above
+ } else {
+ if _, found := t.managed[conn]; found {
+ delete(t.managed, conn)
+ } else {
+ logrus.Warnf("IdleTracker %p: StateClosed transition by un-managed connection", conn)
+ }
}
// Transitioned from any "active" connection to no connections