diff options
author | Jhon Honce <jhonce@redhat.com> | 2020-10-02 14:50:12 -0700 |
---|---|---|
committer | Jhon Honce <jhonce@redhat.com> | 2020-10-05 10:40:23 -0700 |
commit | 2fc50f8b13de0c60072effa8a991bcf36da1fded (patch) | |
tree | dda662fd0725e2f07c5e948bcb3480517f65f699 /pkg/api/server/idle/tracker.go | |
parent | 1b16fcfd14b9e761849e53ac2b83c964ad8ac5a9 (diff) | |
download | podman-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/tracker.go')
-rw-r--r-- | pkg/api/server/idle/tracker.go | 10 |
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 |