2012-07-01 2 views
3

최근에는 pthread_mutex_timedlock에 의존하는 비동기 서버 코드가 너무 일찍 타임 아웃 된 것 같습니다. 나는 처음에는 버그라고 생각했지만 리눅스 커널에 약간의 윤년 문제가 있다는 것을 보았을 때, 나는 유일한 사람이 아닌 것 같다. https://lkml.org/lkml/2012/7/1/11초 도약 및 pthread_mutex_timedlock 조숙 한 타임 아웃

무엇이 현재의 해결책인가? 서버를 다시 시작하거나 커널을 업데이트 하시겠습니까? 내 서버는 timedlock 메커니즘을 사용하여 다른 스레드의 이벤트를 기다리고 있으며이 조기 시간 초과로 CPU 사용량은 시간 제한 잠금에 결코 빠지지 않기 때문에 100 %였습니다. 나는 현재 커널 버전 2.6.39.1

답변

4

잘 우분투 서버 10.04.4를 실행 해요

, 나는 http://forums.pentaho.com/showthread.php?98217-Java-leap-second-bug-how-to-fix-your-broken-servers&s=5836d11a51327406f965c66fddc9149d&p=286479#post286479

을 가로 질러 와서는 sudo에서이 트릭했다 :

/etc/init.d/ntp stop; date; date `date +"%m%d%H%M%C%y.%S"`; date; /etc/init.d/ntp start 

을 (freenode의 #kernel은 date -s "\date\"으로 수정 됨)

또한 CPU 사용량이 100 % 내지 0.5 %이다. 그래서 나는 그것이 다음 도약 두 번째 삽입 때까지, 그 것 같아요.