Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Other] tools/ab_engine.py reuses ab_<arm>_r<n>.log in the temp dir across runs, so a later A/B appends its engine logs to an earlier one

Abierto Apto para principiantes
#4,545 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

@ctr-137 ya está trabajando en esto.

Desde el 29/10/2026.

  • #4647 de @ctr-137 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python
Área
tooling

Línea de trabajo

Empieza leyendo tools/ab_engine.py, especialmente la configuración de la ruta de los registros alrededor de la línea 96 y el lugar donde se inicia cada motor. Comprueba cómo abre el servidor los registros configurados y ejecuta los dos comandos A/B de los pasos de reproducción. El objetivo se cumple cuando una ejecución posterior con los mismos nombres de brazo ya no incluye la salida anterior de los motores, o cuando la herramienta identifica claramente registros separados para cada ejecución.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Area

[Other] (a tool under tools/)

Desktop app, Terminal or source?

Source

What happened

tools/ab_engine.py gives every arm's engine a log file with a fixed name in the temp directory:

cfg["log"] = str(Path(tempfile.gettempdir()) / f"ab_{name}_r{rnd}.log")     # line 96
cpath = Path(tempfile.gettempdir()) / f"ab_{name}.json"

and the server opens a config's log in append mode on purpose (open(log, "a", ...), #779, so a crash report keeps the time). So a second A/B run days later, with the same arm letters, appends its engine output to the first run's files. After two sessions (2026-10-26 and 2026-10-28) ab_B_r1.log holds six [strata] … engine started: blocks from engines with different binaries and different env settings. A grep for a feature line (for me: the int8 crossover line) then finds the earlier session's arm B and looks like the current engine ignored its environment. It cost me an hour on 2026-10-26 before I noticed the dates on the engine started lines.

Expected: a run of the tool starts from empty engine logs, or tells where this run's logs are.

Suggestion: truncate the file before each start (Path(cfg["log"]).write_text("")), or put each run's files in a tempfile.mkdtemp(prefix="ab_engine_") and print that path once.

Smallest steps or command that reproduce it
  1. python tools/ab_engine.py cfg.json A:STRATA_X=1 B:STRATA_X=2 --rounds 1
  2. run it again with any arms named A and B
  3. grep -c 'engine started' $TMPDIR/ab_B_r0.log → 2 (and more with every run)
Reproduction status

Reproduced locally

Strata version

Source checkout v0.2.7.1 (46c152a1), engine 0.1.53; tools/ab_engine.py is identical on main today

Graphics card, memory and system

Intel Arc Pro B70 32 GB · 62 GB RAM · Debian 13 (not GPU specific)

Model, size and settings

Qwen3.8-Flash-Next IQ3_S (not relevant)

Logs

grep -n 'engine started' ab_B_r1.log after the two sessions: six lines, dated 2026-10-26 03:54 to 2026-10-28 20:52.

Lenguaje dominante
C++
Estrellas
11.6k
Forks
1k
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Niko1221/Strata

Todos los issues de Niko1221/Strata

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.