- Shipped
- 4 settembre 2026 alle ore 23:45 UTC
- Author
- Kamo
- Commit
- 37c5494
L'apertura di un terminale fallisce circa la metà del tempo con "Il server ha rifiutato il collegamento terminale. Il tuo biglietto potrebbe essere scaduto", e il registro dice: Terminal handshake rifiutato: nessun biglietto valido Entrambi i terminali sono stati tenuti in un ConcurrentHashMap all'interno di una capsula, e entrambi sono suddivisi in due conversazioni indipendenti che non sbarcano insieme: - il TICKET è coniato da POST******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** browser invia a kamo-internal e kamo-internal proxies in avanti da uno di ITS pods — ed è redento da un WebSocket handshake il browser si apre dritto al bordo su /desktop-ws; e raccolti dalla richiesta del biglietto che lo segue. Quelli arrivano su connessioni diverse da fonti diverse, quindi nessuna sessione l'affinità può legarli insieme: una regola cliente-IP vedrebbe il baccello di kamo-internal per uno e il browser del membro per l'altro. Lo stato deve essere condiviso. Questo è stato latente per tutto il tempo che il servizio ha eseguito una capsula, e entrambi i registri ha sostenuto nei loro commenti che in-memory era il negozio giusto — che era. `replicas` divenne 2 in 4bd25e7, ma che commette anche rotto il contesto, quindi no il secondo pod mai iniziato e lo stato a due poli non è mai stato raggiunto. Fissare l'avvio l'ha reso reale e questo è uscito immediatamente. Così: uno stretto TerminalHandoffStore su Redis, che questo servizio già richiede (@EnableRedisHttpSession non inizierà senza di essa). Soggiorni d'uso singolo atomico — GETDEL in un'operazione, perché un get-then-delete permette due stretta di mano gareggiare su un biglietto entrambi vincere, e un biglietto riproducibile siede nella storia del browser. Non c'è volutamente alcun fagiolo in memoria: uno che degrada tranquillamente a lo stato di per-pod riprodurrebbe questo outage e lo fa sembrare come flakiness. Sono arrivate due cose perché sono lo stesso difetto della stessa classe: - Il terminale per-membro CAP contato per pod, in modo che un membro possa tenere due volte il limite — otto client PTY e tmux su una VM condivisa che è stata presa giù dalla pressione di memoria prima. Il contatore è condiviso ora, rinfresca il suo TTL su ogni cambiamento così un conteggio orfano decade invece di bloccare qualcuno fuori, e morsetti a zero in modo da un decrement outliving il suo incremento non può acquistare headroom. - Il registro di invio ha avuto il bug identico e un guasto QUIETER: un vuoto il risultato è la risposta ordinaria là (quasi ogni terminale è uno qualcuno aperto per se stessi), così un handoff perso non ha rifiutato nulla — ha aperto una pianura Sette nuovi test precisano "due pod, un negozio" condividendo un negozio tra due istanze del registro: un biglietto coniato su un redentore sull'altro, viene poi speso ovunque, porta il suo hand-off attraverso, e il cappello e il suo rilascio sono visti da Entrambi. Verificato in un trattato di lavoro isolato — 2137 test, 0 guasti — perché il comune l'albero di lavoro attualmente detiene il lavoro di un'altra sessione. Questo piano di lavoro bisogno di una risorsa principale non correlata per compilare a tutti: un enum condiviso-librario guadagnato PROGRESSIVE LOGIN LOCKOUT, che rende SuspiciousDetection Servizio commutatore esaustivo non esaustivo, quindi origine/principale non costruisce attualmente. Che cosa? fix non è in questo commit e non è mio; questo non si distribuirà finché non atterra.