From 55b4e54d5ff545fc36705489eb8518f9d8ad8e01 Mon Sep 17 00:00:00 2001 From: funman300 Date: Tue, 11 Aug 2026 02:21:21 +0000 Subject: [PATCH] gate-evidence: add the Python-side positive/negative observation 'Rust did not receive it' is weaker than 'Python did'. The redirector always runs on Python and is never switched, so it advertises the Blaze endpoint on every run; whether Python then receives the Blaze CONNECT it just advertised says where the hop actually went. This is already visible in the existing logs and settles gate 5-6 more firmly than the sidecar record alone: 02:02:13 Python REDIR SENT -> 10.10.0.120:42130 (to .105) 02:02:13 Rust conn-0005 CONNECT from 10.10.0.105 Python received NO Blaze CONNECT Same second, both sides: Python advertised the endpoint and did not get the connection; Rust did. It is also the mechanism gate 8 needs in reverse. Co-Authored-By: Claude Opus 5 (1M context) --- openfut-blaze-host/gate-evidence.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/openfut-blaze-host/gate-evidence.sh b/openfut-blaze-host/gate-evidence.sh index 6ed5bfd..9247acd 100755 --- a/openfut-blaze-host/gate-evidence.sh +++ b/openfut-blaze-host/gate-evidence.sh @@ -114,6 +114,34 @@ else both " no trace configured (set OPENFUT_BLAZE_TRACE before starting the sidecar)" fi +# --------------------------------------------- python side (the other half) +# +# "Rust did not receive it" is weaker than "Python did". The redirector always +# runs on Python and is never switched, so it advertises the Blaze endpoint on +# every run; whether Python then receives the Blaze CONNECT it just advertised +# is the positive observation that says where the hop actually went. +both "" +both "--- PYTHON SIDE (positive/negative observation) ---" +PYLOG=/tmp/blaze_responder.log +if docker exec openfut-fut-backend test -f "$PYLOG" 2>/dev/null; then + docker exec openfut-fut-backend sh -c "grep -E 'REDIR SENT|BLAZE CONNECT from|closed' $PYLOG" \ + > "$DEST/python-blaze.log" 2>/dev/null || true + CLIENT="${OPENFUT_CLIENT_IP:-10.10.0.105}" + redirs="$(grep -c "REDIR SENT ('$CLIENT'" "$DEST/python-blaze.log" 2>/dev/null || echo 0)" + blazes="$(grep -c "BLAZE CONNECT from ('$CLIENT'" "$DEST/python-blaze.log" 2>/dev/null || echo 0)" + both " client $CLIENT — redirector hops served by Python: $redirs" + both " client $CLIENT — Blaze connections received by Python: $blazes" + both " most recent:" + grep -E "\('$CLIENT'" "$DEST/python-blaze.log" 2>/dev/null | tail -4 | sed 's/^/ /' \ + | tee -a "$DEST/summary.txt" || true + both "" + both " interpretation: a redirector hop with NO following Python Blaze CONNECT" + both " means the Blaze hop went elsewhere (the Rust sidecar). A Python Blaze" + both " CONNECT means it went to Python." +else + both " python blaze log not readable (container not running?)" +fi + # ----------------------------------------------------------- python health both "" both "--- PYTHON BACKEND (must stay healthy throughout) ---"