mirror of
https://github.com/moby/buildkit.git
synced 2026-06-24 08:47:57 +00:00
Traces are now forwarded in a non-blocking goroutine when sent through the traces exporter. This prevents traces forwarded from the client from being stalled while waiting for an upstream uploader to appear. In addition, adds a shutdown context to `appcontext` that will only cancel when an interrupt has been received twice. One interrupt will signal the program should clean up and shut down, the second indicates we should skip shutdown procedures (more forceful), and the third will indicate that we should immediately terminate the program. This gives a bit more of a degree of control to shutdown procedures like the traces and metrics exporter so there's a difference between forcibly calling exit and just waiting a long time for the shutdown to happen. Includes a more aggressive shutdown timeout for `buildctl` that is similar to the export timeout on `docker-buildx` for the tracing shutdown as another preventative measure to ensure the CLI hangs up at an appropriate time interval. Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>