mirror of
https://github.com/podman-container-tools/podman.git
synced 2026-08-09 10:25:42 +00:00
Our previous flow was to perform a hijack before passing a connection into Libpod, and then Libpod would attach to the container's attach socket and begin forwarding traffic. A problem emerges: we write the attach header as soon as the attach complete. As soon as we write the header, the client assumes that all is ready, and sends a Start request. This Start may be processed *before* we successfully finish attaching, causing us to lose output. The solution is to handle hijacking inside Libpod. Unfortunately, this requires a downright extensive refactor of the Attach and HTTP Exec StartAndAttach code. I think the result is an improvement in some places (a lot more errors will be handled with a proper HTTP error code, before the hijack occurs) but other parts, like the relocation of printing container logs, are just *bad*. Still, we need this fixed now to get CI back into good shape... Fixes #7195 Signed-off-by: Matthew Heon <matthew.heon@pm.me> |
||
|---|---|---|
| .. | ||
| attach.go | ||
| checkpoint.go | ||
| commit.go | ||
| containers.go | ||
| create.go | ||
| diff.go | ||
| exec.go | ||
| healthcheck.go | ||
| logs.go | ||
| mount.go | ||
| types.go | ||