KamoCRM

X sigue contando a través de un sueño, así que cada ordenador reanudado volvió a dormir

FixKlusterServices
Enviado
24 de septiembre de 2026 a las 8:48 UTC
Autor
Kamo
Commit
c657eb1

Un miembro que abrió su computadora tiene una pestaña negra. El lanzamiento estaba bien, el velatorio estaba bien, el curriculum vitae estaba bien — y luego la máquina se accionó antes de que el navegador pudiera conectarse a él. Desde cluster, a las 08:38 hoy: VirtualMachineInstance comenzó. (08:35:33) ordenador hc-...-7dcfc3f4194a ha sido ocioso 2564s (limitado 30m) — pidiéndole que duerma (08:38:13) Detuvo la máquina virtual eliminando la instancia de máquina virtual Reboot [console]: Power down Una computadora que había estado levantada durante 160 segundos informó 42 minutos de ocio. Guacamole autentificado el miembro y luego nunca abrió un túnel, porque para entonces no había nada que escuchar en 3389 — guacd no ha registrado un intento de conexión toda la mañana. xprintidle responde "cuánto tiempo desde que esta sesión de X fue tocada por última vez", y THE X SERVER KEEPS COUNTING Un SUSPEND-TO-DISK. Se restaura con el temporizador de entrada que tenía, así que cada hora la máquina se gasta apagado es devuelto como una hora de ocio. Ambos consumidores hicieron exactamente lo que son construido para hacer con ese número: el propio relojero del agente hiberna en el límite, y el computeservice Idle barrido lo pide. El velatorio del miembro fue deshecho en un barrido, cada vez. Este no es el fallo del curriculum vitae fijado en a607fea, es la mitad que se perdió. Que se comen 'último activo' cuando el reloj de la pared muestra una brecha - y la encuesta() entonces lo superó tres líneas más tarde de el mismo contador que está mal, así que el reset nunca sobrevivió a una sola encuesta. Un ordenador no puede haber sido ocioso durante más tiempo de lo que ha estado despierto. Ese invariante es la solución, y sostiene lo que X cree: " awake since" se establece al principio y de nuevo en cada curriculum vitae detectado, y cada respuesta que esta clase da está sujeta a ella. La detección del curriculum vitae también se mueve fuera de la garrapata() en note resume(), llamado también de idle seconds(). computeservice pide estado en su propio horario, y cualquiera que lea tierras primero después de un curriculum vitae el que cuya respuesta decide si la máquina se vuelve a dormir; cuando el restablecimiento vivió sólo en tick(), una llamada de estado que llega primero reportó la ociosidad pre-sleep y el barrido actuó en él. Cuatro pruebas existentes pusieron el último activo en el pasado sin decir cuánto tiempo la máquina había estado levantada, que el invariante ahora expone como una ficción – un ordenador ocioso durante una hora ha estado despierto para uno. Dicen ambos ahora. Tres nuevas pruebas cubren el curriculum vitae, la pinza no se convierte en una segunda política de ocio, y una llamada de estado que llega antes de la primera garrapata.

Todos los cambios

¿Te gusta lo que ves envío?

Comienza con el plan gratuito y vuelve a leer esta página dentro de un mes para ver cómo funcionan las funciones y los beneficios.

Comience gratis para siempreVer los precios