KamoCRM

X continue à compter à travers un sommeil, donc chaque ordinateur repris est retourné directement au sommeil

FixKlusterServices
Expédié
24 septembre 2026 à 08:48 UTC
Auteur
Kamo
Commit
c657eb1

Un membre qui ouvre son ordinateur a un onglet noir. Le lancement était bien, le réveil était bien, le CV était très bien — et puis la machine s'est éteinte avant que le navigateur puisse se connecter à elle. Des à 08h38 aujourd'hui: VirtualMachineInstance a commencé. (08:35:33) ordinateur hc-...-7dcfc3f4194a a été ralenti 2564s (limite 30m) — lui demander de dormir (08:38:13) Arrêt de la machine virtuelle en supprimant l'instance de la machine virtuelle [console] redémarrage : Un ordinateur qui était monté depuis 160 secondes a signalé 42 minutes d'oisiveté. Guacamole authentifié le membre et n'a jamais ouvert de tunnel, parce qu'il n'y avait alors rien à écouter sur 3389 — guacd n'a enregistré aucune tentative de connexion toute la matinée. xprintidle répond « combien de temps depuis que cette session X a été touchée », et THE X SERVER KEEPS COUNTING ARRÊT D'UN SUSPEND-TO-DISK. Il restaure avec l'horodatage d'entrée qu'il avait, donc chaque heure la machine les dépenses hors tension sont retournées comme une heure d'oisiveté. Les deux consommateurs ont alors fait exactement ce qu'ils sont construit pour faire avec ce nombre: le propre guetteur de l'agent hiberne à la limite, et calcul de service Le balai le demande. Le réveil du membre a été annulé à chaque fois. Ce n'est pas le bug de reprise corrigé dans a607fea, c'est la moitié que l'on a manqué. Ce commit redémarre `last active` lorsque l'horloge murale montre un trou — et polling() puis le superpose trois lignes plus tard le compteur même qui est faux, de sorte que la réinitialisation n'a jamais survécu à un seul sondage. Un ordinateur ne peut pas avoir été inactif plus longtemps qu'il n'a été éveillé. Cette invariante est la solution, et elle tient ce que X croit : ` awake fès` est réglé au début et à nouveau sur chaque CV détecté, et chaque réponse de cette classe est serrée à elle. La détection de reprise sort également de tic() dans note resume(), appelée de ifed seconds() aussi bien. calculservice demande le statut sur son propre emploi du temps, et si lit terres d'abord après un curriculum vitae est Celui dont la réponse décide si la machine est remise au sommeil; lorsque la réinitialisation a vécu seulement dans tic(), un appel de statut arrivant d'abord a signalé l'oisiveté du sommeil et le balayage a agi dessus. Quatre tests existants ont mis last active dans le passé sans dire combien de temps la machine était montée, que l'invariant expose maintenant comme une fiction — un ordinateur oisif pendant une heure a été éveillé pendant une heure. Ils disent les deux maintenant. Trois nouveaux tests couvrent le CV, la pince ne devient pas une deuxième politique de ralenti, et un appel de statut qui arrive avant la première tique.

Tous les changements

Comme ce que vous voyez l'expédition?

Commencez avec le plan gratuit et lisez à nouveau cette page dans un mois, puis passez à l’abonnement payant pour bénéficier de toutes les fonctionnalités.

Commencez gratuitement pour toujoursVoir la tarification