KamoCRM

El archivo de swap era más pequeño que el cheque que lo mide

FixKlusterServices
Enviado
23 de septiembre de 2026 a las 19:17 UTC
Autor
Kamo
Commit
4673e45

Con el aterrizaje reiniciado, el primer ordenador apareció con curriculum vitaeConfigurado verdadero y detenido en el siguiente precondición, que resulta insaciable por la construcción: swapBytes 2095468544 el área USABLE, desde /proc/swaps swapNeededBytes 2095474483 int(MemTotal * 1.05) - No. corto por 5,939 de un archivo 2 GB la disposición() mide la zona mkswap izquierda usable. ensure swap asignó el archivo exactamente número de esa zona se compara, y mkswap toma una página de encabezado y redondea el resto hacia abajo páginas enteras, por lo que el área utilizable es siempre un par de KB corto de su propio objetivo. Entonces... Retorno temprano en `have == want bytes`, por lo que nunca crece, y swapLargeEnough permanece falso para siempre. El archivo ahora se asigna con un margen, y el margen es 16 MiB en lugar de la página mkswap necesita, porque MemTotal no es una constante: el núcleo excluye lo firmware y la reserva initrd, y que se movió por 5.6 KB entre dos botas de este mismo VM. Un margen medido en las páginas dejaría un ordenador un núcleo de actualización lejos de nunca dormir de nuevo. El regreso temprano es ahora `have '= target`, no `==`. La igualdad significaba una oscilación MemTotal en ambos direction rewrote un archivo 2 GB en un volumen Longhorn en una máquina que ya estaba bien. También aquí, porque ambos fueron encontrados por la misma investigación: El reinicio ahora es perseguido por el relojero ocioso en lugar de por quien llama /prepare-sleep. Ambos momentos que parecen el correcto están equivocados. El hilo de arranque del agente corre antes Computeservice ha empujado cualquier cosa, así que no hay nada que proteger. Y /prepare-sleep no llamado por computeservice en absoluto - el método cliente existe y no tiene callador; el verdadero caller es un runcmd in cloud-init.userdata.yaml, que dispara en el MIDDLE de la provisión. Así que la pregunta es simplemente re-asked cada treinta segundos por el vigilante que ya estaba encuestando, cerrado en el la provisión de empuje ha aterrizado y no hay sesión de escritorio. Esa segunda puerta es más fuerte. que parece: una sesión xrdp sobrevive una desconexión, por lo que una lista vacía significa que nadie ha iniciado sesión todavía o todo el mundo se ha identificado, no sólo que nadie está en el teclado. Refusals log once per distinct reason. Nunca silencio, y no dos mil líneas idénticas al día. A refused `systemctl hibernate` now reached the journal. Al éxito el comando nunca regresa, así que el lo único que puede imprimir es por qué dijo que no – y que fue a DEVNULL, dejando el servicio al Note diez minutos más tarde que un ordenador "no se durmió cuando se le preguntó" sin ninguna razón en ningún lugar. run forever se divide en el bucle y tick(), por lo que las decisiones se pueden probar. 43 pruebas.

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