ac0b564c02
- self.engine was a single ConductorEngine reference that got overwritten when multiple tracks ran concurrently, orphaning the first track's engine - Now uses self.engines: Dict[str, ConductorEngine] keyed by track.id - Updated _spawn_worker, kill_worker, pause_mma, resume_mma, approve_ticket, _load_active_tickets, and _update_ticket_depends_on to use engines.get(track_id) Fixes concurrent MMA track execution bug where only one worker ever appeared.
12 lines
795 B
Python
12 lines
795 B
Python
with open('src/app_controller.py', 'rb') as f:
|
|
content = f.read()
|
|
|
|
# Fix _update_ticket_depends_on
|
|
old = b' if self.engine:\r\n from src.dag_engine import TrackDAG, ExecutionEngine\r\n self.engine.dag = TrackDAG(self.active_track.tickets)\r\n self.engine.engine = ExecutionEngine(self.engine.dag, auto_queue=self.engine.engine.auto_queue)'
|
|
new = b' engine = self.engines.get(self.active_track.id if self.active_track else None)\r\n if engine:\r\n from src.dag_engine import TrackDAG, ExecutionEngine\r\n engine.dag = TrackDAG(self.active_track.tickets)\r\n engine.engine = ExecutionEngine(engine.dag, auto_queue=engine.engine.auto_queue)'
|
|
content = content.replace(old, new)
|
|
|
|
with open('src/app_controller.py', 'wb') as f:
|
|
f.write(content)
|
|
|
|
print("Done") |