gates / gates (push) Successful in 2m29s
- audits/linetest-2026-10-27/: the hold failed four times as built (qBittorrent drains ~14 s), the fix 710ceac, the test through the hold on 0.346.0-rc.1 (94.5 Mbit/s, the limit back exactly), teardown. - audits/release-2026-10-27/: builds, agent release + signed updates, per-box and global floors, box walk. - 09 §3 decisions 269 (R-1250 fix the same day) and 270 (R-1218 live proof waived); D55's window result in 268. - 08 §: the drain-wait design line. STATUS, CONTEXT, register (223 -> 214).
14 lines
1.3 KiB
Bash
14 lines
1.3 KiB
Bash
#!/bin/sh
|
|
# limitprobe.sh — INSIDE guest 9201, R-1250 diagnosis on the THROWAWAY qBittorrent only (no line test is started): the
|
|
# controller's own hold value (up_limit 1024 B/s, the same app/preferences call) for 60 s, then the exact previous
|
|
# value back. Each second: qBittorrent's reported limit + speed and the bytes its container sent.
|
|
Q=/root/r1250/qbg.sh; PID=$(docker inspect -f '{{.State.Pid}}' qbittorrent)
|
|
rd(){ sh $Q transfer/info | python3 -c 'import json,sys;d=json.load(sys.stdin);print("limit=%s speed=%.2f" % (d.get("up_rate_limit"), d.get("up_info_speed",0)*8/1e6))'; }
|
|
PREV=$(sh $Q app/preferences | python3 -c 'import json,sys;print(json.loads(sys.stdin.read().replace("\\\\","/")).get("up_limit"))' 2>/dev/null)
|
|
echo "previous up_limit=$PREV"; [ -n "$PREV" ] || { echo "cannot read the previous limit — no probe"; exit 1; }
|
|
c0=$(awk '/eth0:/{print $10}' /proc/$PID/net/dev)
|
|
echo "$(date -u +%T) set up_limit=1024: $(sh $Q app/setPreferences 'json={"up_limit":1024}'; echo ok)"
|
|
i=0; while [ $i -lt 60 ]; do sleep 1; c=$(awk '/eth0:/{print $10}' /proc/$PID/net/dev); echo "$(date -u +%T) t=$((i+1))s ctr=$(( (c-c0)*8/1000 ))kbit $(rd)"; c0=$c; i=$((i+1)); done
|
|
echo "$(date -u +%T) put back up_limit=$PREV: $(sh $Q app/setPreferences "json={\"up_limit\":$PREV}"; echo ok)"
|
|
sleep 2; echo "after: $(rd)"
|