Intel x86 프로세스를 채용한 Linux 서버에서 208.5일의 기간을 넘어설 경우 시스템이 재부팅 할 가능성이 있습니다.
발생 가능성이 있는 Linux Kernel의 버전은 2.6.28~2.6.32.49 입니다.
Intel x86 프로세스에는 Time Slice Stamp Counter라는 64bit 카운터가 있으며, 이 카운터는 클럭 단위로 카운트 업 됩니다.
현재의 기술은 CPU 의 저전력 기술로 인하여, CPU 클럭이 변경(가변) 가능하도록 설계, 제조됨에 따라 Linux Kernel은 Cycles_2_ns() 라는 함수를 제공하여 TSC의 값을 나노 초 단위로 환산 할 수 있도록 제공 하고 있습니다.
바로 이 부부의 함수 코드에 버그가 있어, 208.5일이 경과하게 되면, 계산중의 수치에 오버플로우가 발생하여, 변환치가 이상한 값을 반환하게 되고, 이 부분의 값으로 인하여 시스템에 Crash가 발생 재부팅을 하게 되는 것입니다.
이 문제에 대한 해결책은 해당 Kernel의 upgrade 입니다.
문제가 해결된 kernel의 버전은 2.6.32.50 이상 버전입니다.
By. 조경래