Skip to content

Commit 82b4690

Browse files
committed
CI: show Docker diagnostics on failure
In order to help confirm/diagnose issues such as OOM kills.
1 parent ee5fbc2 commit 82b4690

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

.github/workflows/api-and-integration-tests.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,29 @@ jobs:
7171
until $(curl -k --output /dev/null --silent --head --fail https://eus.yoda:8444 ); do printf '.' ; sleep 1; done
7272
docker exec provider.yoda sh -c 'while ! pgrep irodsServer > /dev/null ; do echo Waiting for iRODS to start ... ; sleep 1; done'
7373
74+
# To diagnose failures
75+
- name: Docker diagnostics
76+
if: always()
77+
run: |
78+
cd yoda/docker/compose/
79+
echo "=== docker ps ==="
80+
docker ps -a
81+
82+
echo "=== compose logs ==="
83+
docker compose logs --no-color || true
84+
85+
echo "=== memory ==="
86+
free -h || true
87+
88+
echo "=== disk ==="
89+
df -h || true
90+
91+
echo "=== inspect ==="
92+
for c in $(docker ps -aq); do
93+
docker inspect $c \
94+
--format='{{.Name}} Exit={{.State.ExitCode}} OOM={{.State.OOMKilled}}'
95+
done
96+
7497
- name: Pull and install latest version of ruleset
7598
shell: bash
7699
run: |
@@ -148,6 +171,29 @@ jobs:
148171
docker exec provider.yoda sh -c 'cd /tmp; sudo -u irods python3 -m coverage combine -q /tmp/coverage.dat.*'
149172
docker exec provider.yoda sh -c 'cd /tmp; sudo -u irods python3 -m coverage report'
150173
174+
# This is useful for diagnosing/confirming OOM issues
175+
- name: Docker diagnostics
176+
if: failure()
177+
run: |
178+
cd yoda/docker/compose/
179+
echo "=== docker ps ==="
180+
docker ps -a
181+
182+
echo "=== compose logs ==="
183+
docker compose logs --no-color || true
184+
185+
echo "=== memory ==="
186+
free -h || true
187+
188+
echo "=== disk ==="
189+
df -h || true
190+
191+
echo "=== inspect ==="
192+
for c in $(docker ps -aq); do
193+
docker inspect $c \
194+
--format='{{.Name}} Exit={{.State.ExitCode}} OOM={{.State.OOMKilled}}'
195+
done
196+
151197
- name: Output rodsLogs
152198
if: failure()
153199
run: |
@@ -163,6 +209,7 @@ jobs:
163209
run: |
164210
docker exec eus.yoda sh -c 'set -x ; for log in error.log access.log ; do echo "${log}:" ; cat "/var/log/apache2/$log" ; echo; done'
165211
212+
166213
# Uncomment section below when needed for debugging.
167214
#
168215
# - name: Setup tmate session for debugging

0 commit comments

Comments
 (0)