GitLab CI and Distributed Builds
Tracking TCP Keepalives: Lessons in Docker, Golang & GitLab

Tracking TCP Keepalives: Lessons in Docker, Golang & GitLab

11/15/2019 · Stan Hu

What this post added

This post details an investigation into silent test failures in GitLab CI jobs, which uncovered a bug in the Docker client library code used by GitLab Runner and an unexpected change in Go TCP keepalive defaults. The investigation involved debugging CI job log handling, reproducing the bug by simplifying `.gitlab-ci.yml`, differentiating between Docker Machine and Docker executors, and analyzing network traffic to understand timeouts related to Google Cloud Platform. The issue was ultimately worked around by upgrading the Go compiler.

Read the original post ↗