2012年5月8日火曜日

閏秒について調べるメモ(これ以上調べません)

本当に調べるかどうかは判らない。。
分岐パッチが判ったので、もうこれ以上調べない。。


1) Red Hat5.2 kernel2.6.29で見付かった閏秒のタイミングでkernel hangする問題。
https://bugzilla.redhat.com/show_bug.cgi?id=479765

RHEL5.4でFIX。パッチもあり。
http://rhn.redhat.com/errata/RHSA-2009-1243.html

CentOSだけど、kernel-2.6.18-164.el5.src.rpmを調べたら
linux-2.6-misc-fix-leap-second-hang.patch ってパッチが入ってた。
Red Hat系の分岐点はここかな? CentOSとRed Hatってやっぱり多少違うのか?
http://vault.centos.org/5.4/os/SRPMS/

Debianを追ってたら2.6.26-20でFIXされたとか書いてある。
-の後ろはDebian独自の番号なのかな?
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=510478

Debianはもう調べる気力がない。。


2009/1/1以降にリリースされたやつから実物当たるしかないかなぁ。。
http://www.kernel.org/pub/linux/kernel/v2.6/
⇒2009/1/14リリースの2.6.27.11では未FIXだった。

ここで見つけた。

http://github.com/mirrors/linux-2.6/commit/bd3312681f69207a40431981c1bce1afdc9b7975#kernel/time/ntp.c
⇒2012/1/26の更新…って今年か。。


見つけたけど、関数ごと置き換わってて、詳しくない俺には直ってるのか判らない。。
write_seqlock_irq/write_sequnlock_irqって関数がspin_lock_irq/spin_unlock_irq関数に変わってて、
 xtime_lockがntp_lockに変わってる。ロックの構造体は見てない。


http://lkml.org/lkml/2009/1/2/373
⇒CPUをぶん回すと再現する、って書いてあるし、自前でカーネルコンパイルして試すか…。
コンパイルしてCPUぶん回してみたけどハングしない。
VirtualBoxだからだろうか。。PCサーバでやりたいけど、7/1までに間に合うかな。。


2) MySQL 5.1.63で修正されたらしい、slow-query-logのquery timeが負数になるとunsignedで解釈しちゃうやつ。
以前のバージョンだと閏秒のタイミングで起こりそうで、slow-query-logを食わせているスクリプトがあると問題になりそう。

http://bugs.mysql.com/bug.php?id=35396
こっちに動作確認した分だけメモ。


3) 前のWindowsは23:59:60を挿入しない動作っぽかったけど、今も?

http://support.microsoft.com/kb/909614/


4) そういやJavaScriptやPerlとか、23:59:60を許容するんだろうか?
ログを食わせて内部処理しているプログラムはどうなるか。。
(2008/12/31以降に台頭してきたものだけ考慮すれば良いか)
⇒なんかとんでも勘違いで、システム的には23:59:60は存在せずに、00:00:00が2秒間続くのね。。
恥ずかし。
無理矢理再現させて初めて気付いたんだけど、システム的には23:59:59が2秒続いて00:00:00みたい。なんかもうね_| ̄|○


5) このテクニックで、23:59:60を1時間くらい作れないもんだろうか。
そしたら色々検証はかどりそう(やるかどうかは別として)

http://elinux.org/images/4/46/Long-termTestingOnAcceleratedLinuxKernel-yoshi.pdf

0 件のコメント :

コメントを投稿