#!/usr/bin/env python3 """wanderer_mem.py — R-1338 on 9202: a fresh Wanderer from the drill (v0.21.2 + MEILI_MAX_INDEXING_MEMORY), the cap read back from the running search container, the fixture's seed, box_walk's own 600 s memory soak, the seed read back, removed.""" import json, os, sys sys.path.insert(0, "/mnt/5_hdd/felhom.eu/git/app-catalog-felhom.eu/scripts") import box_walk as w import upgrade_fixtures_box as fb EV = os.environ["EV"]; os.makedirs(EV, exist_ok=True) rec = {} w.login() try: if w.stack("wanderer").get("deployed"): w.remove("wanderer") w.refresh_box_mirror(); w.sync_rescan() if not w.deploy("wanderer", "hike"): print("install failed"); sys.exit(1) rec["cap_in_container"] = [l for l in w.guest("docker inspect -f '{{range .Config.Env}}{{println .}}{{end}}' wanderer-search").split("\n") if "MAX_INDEXING" in l] t = fb.Wanderer().seed(w, "hike", w.say) rec["seed"] = bool(t) rec["memory"] = w.soak("wanderer", 600) rec["read_back"] = bool(t) and fb.Wanderer().verify(w, "hike", t, w.say) finally: rec["log"] = w.LOG json.dump(rec, open(os.path.join(EV, "wanderer-mem-9202.json"), "w"), indent=1, default=str) if w.stack("wanderer").get("deployed"): w.remove("wanderer") c = (rec.get("memory") or {}).get("containers") or {} print("cap:", rec.get("cap_in_container"), "| read back:", rec.get("read_back")) print({k: (v.get("anon_peak_pct"), v.get("oom_kill_delta"), v.get("restarts_delta")) for k, v in c.items()})