3. OS이야기/02. Troubleshooting

Linux Kernel 208.5일 시스템 Hang issue

OSSW(Open Source System SoftWare 2014. 5. 27. 18:34

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. 조경래