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
pgpCkwfNmUHws.pgp
Description: PGP signature
