fix(gateway): orfanaggio per connessione + esito del runner dentro il wake #9
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/gateway-orphan-per-connection"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Perche
I task lunghi del runner non tornavano mai all orchestratrice. Due difetti indipendenti.
1. Orfanaggio per client_id invece che per connessione
Hub._by_orchestratorera indicizzato sulclient_idscelto dal client, che non e univoco: due processigw.pycon lo stesso nome finivano nello stesso bucket. Quando uno si disconnetteva,orphan_orchestratororfanava anche le sessioni con un task in volo dellaltro; scaduta la grace la sessione veniva chiusa e ilchat.resultdel runner buttato.Ora lindice e chiavato su
Connection.conn_id(uuid per socket) eorphan_orchestratorcolpisce solo le sessioni di quella connessione.2. Il wake non portava lesito
build_wake_textscartavaframe[text]: il risveglio conteneva solo ok/durata/costo, quindi lesito vero arrivava soltanto se il client era sopravvissuto allattesa. Ora il wake include il report del runner (troncato aGW_WAKE_TEXT_MAX_CHARS, default 4000) e ilsession_idper ritrovare.agent-runner/work/<sid>/sulla VM.Test
81 passed. Aggiunti casi di regressione per entrambi i difetti.