闰秒和pthread_mutex_timedlock过早超时

时间:2012-07-01 11:26:51

标签: linux pthreads leap-second

就在最近,依赖于pthread_mutex_timedlock的异步服务器代码似乎过早地超时了。起初我认为这只是我的错误,但是看到linux内核有一些闰秒问题,似乎我不是唯一一个:https://lkml.org/lkml/2012/7/1/11

目前的解决方法是什么?重启服务器,还是更新内核?我的服务器依赖于时间锁机制来等待来自其他线程的事件,并且由于这个过早的超时,CPU使用率一直是100%,因为它永远不会停留在定时锁定。

我目前正在运行ubuntu服务器10.04.4,内核版本为2.6.39.1

1 个答案:

答案 0 :(得分: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的#core说date -s "\date\"修复了它)

CPU使用率从100%左右下降到0.5%也证实了这一点。所以我猜那就是,直到下一次闰秒插入。