El Martes 26 Octubre 2004 14:56, Sebasti�n D. Criado escribi�:
> Les cuento un caso curioso.
>
> Si tienen la dicha de que un server este uptime mas de 497 d�as, con el
> kernel 2.4 (supuestamente era un error conocido de la serie 2.2)van a
> tener el siguiente problema, se pondr� a 0 de nuevo.
> volvera a empezar.
>
> Es un error de overflow de n�meros enteros de 32 bits que sucede en
> muchos Unix y en las versiones 2.4 del kernel Linux tambi�n.
>
> Es debido a que el timer del sistema se actualiza cada 10 ms. Se le
> pueden pasar parametros al kernel para cambiarlo
>
> 2^32 = 4294967296.
>
> 4294967296 / 100 = 42949672,96 seg
> que es igual a 715827,882666667 min
> que es igual a 11930,464711111 horas
> que es igual a 497,102696296 dias
> o en lectura humana 497 d�as, 2 horas, 27 minutos y 53 segundos
>
> Esto estaba definido en los headers del kernel en
>
> include/linux/kernel.h: � � � long uptime; � � /* Seconds since boot */
>
> Supuestamente en la serie 2.4 estaba un long integer, pero en la versi�n
> 2.4.18 sigue estando como long, seg�n pude verificar.
>
> Se los comento por que me encontr� con un servidor que le doy
> seguimiento, esperando que llegara a los 500 d�as y vi que nada, paso de
> nuevo a 0.

Como complemento, en el 2.4.27 y en el 2.6.8.1 tambien figura long.

Seria bueno saber si hay alguna razon por la que no se cambio o si fue 
solamente olvido de los desarrolladores :)

Saludos.
-- 
Ricardo Barberis
Usuario Linux N� 250625: http://counter.li.org
Usuario LFS N� 5121: http://www.linuxfromscratch.org - http://www.lfs-es.org
Senior SysAdmin - Dattatec.com - Hosting Solutions

Attachment: pgpCkwfNmUHws.pgp
Description: PGP signature

Responder a