2006-02-08 (Wed)
_ [comp] Fx 1.5.0.1 が落ちるページ
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css">h1 + p:first-letter {float:right;}</style>
<title>test</title>
</head>
<body>
<h1>a</h1>
<a href="b"><img src="b" alt="b"></a> </body>
</html>
という HTML ファイルを開き、リンクにポインタをのせると SEGV る。1.5.dfsg+1.5.0.1-1vd1 で確認。float:right が float:left でもクラッシュ。 バックトレースを取ってみるとこんな感じ。
#0 0xffffe410 in __kernel_vsyscall ()
#1 0x401aea7d in raise () from /lib/tls/i686/cmov/libpthread.so.0
#2 0x0808217c in nsProfileLock::FatalSignalHandler ()
#3 <signal handler called>
#4 0x0827091c in nsCSSFrameConstructor::GetInsertionPoint ()
#5 0x0827fab7 in nsCSSFrameConstructor::ContentInserted ()
#6 0x0827edf9 in nsCSSFrameConstructor::RecreateFramesForContent ()
#7 0x0827f0d2 in nsCSSFrameConstructor::ProcessRestyledFrames ()
#8 0x0827f21c in nsCSSFrameConstructor::RestyleElement ()
#9 0x0827f44f in nsCSSFrameConstructor::ProcessOneRestyle ()
#10 0x0827f552 in nsCSSFrameConstructor::ProcessPendingRestyles ()
#11 0x0827f5fe in nsCSSFrameConstructor::RestyleEvent::HandleEvent ()
#12 0x0827f631 in HandleRestyleEvent ()
#13 0x401259b7 in PL_HandleEvent () from /usr/lib/firefox/libxpcom_core.so
#14 0x40126288 in PL_ProcessPendingEvents ()
from /usr/lib/firefox/libxpcom_core.so
#15 0x4012793e in nsAutoCMonitor::Exit ()
from /usr/lib/firefox/libxpcom_core.so
#16 0x08266d95 in event_processor_callback ()
Bugzilla を漁ってみると、
- Bugzilla ORG 318592 - [FIX]Crash with evil testcase, using float:right; and .u::first-letter { letter-spacing: 50px; }
- Bugzilla ORG 322820 - Crash [@ nsCSSFrameConstructor::RemoveFirstLetterFrames] with evil testcase, using float:right; and .u::first-letter
- Bugzilla ORG 317275 - Evil float:right testcase causes assertions and can crash [@ nsFrame::GetFirstLeaf]
あたりを手繰れてきた。示されてるパッチを当ててみる。Bugzilla ORG 318592 の testcase2 (Bugzilla ORG 3228207) と Bugzilla ORG 317275 のテストケース4つでは落ちなくなったけど、上記問題の HTML ファイルと Bugzilla ORG 318592 の testcase ではまだ落ちる。もっとも両者では落ちる場所が違うんだけど、アテが外れたか。 なお、trunk (Mozilla/5.0 (X11; U; Linux i686; ja-JP; rv:1.9a1) Gecko/20060207 Firefox/1.6a1) では、Bugzilla ORG 318592 の testcase 以外、上記問題の HTML ファイルの含めて問題ないようだ。
_ [debian] w3m 0.5.1+1.946-0vd8
w3mでpipeをクローズしないバグの修正を施して作成。
2006-02-07 (Tue)
_ [vdr] 続・HDD 崩壊の前兆?
しばらく落ち着いたと思っていたら、
Feb 6 06:25:12 XXXXXXXX kernel: hda: dma_intr: status=0x51 { DriveReady SeekComplete Error }
Feb 6 06:25:12 XXXXXXXX kernel: hda: dma_intr: error=0x40 { UncorrectableError }, LBAsect=237641434, sector=237641271
Feb 6 06:25:12 XXXXXXXX kernel: ide: failed opcode was: unknown
Feb 6 06:25:12 XXXXXXXX kernel: end_request: I/O error, dev hda, sector 237641271
また出ていた。さすがに対処しないとやばそうだ。
_ [comp] smartmontools
いろいろ検索していると Nano domain - diary: HDD破損、ハードディスクのS.M.A.R.T.情報を表示するには という記事を発見。紹介されている smartmontools を早速導入。
# smartctl -a /dev/hda
:
=== START OF INFORMATION SECTION ===
Model Family: Maxtor DiamondMax Plus 9 family
Device Model: Maxtor 6Y120P0
Serial Number: XXXXXXXX
Firmware Version: YAR41BW0
User Capacity: 122,942,324,736 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 7
ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0
Local Time is: Tue Feb 7 14:51:22 2006 JST
SMART support is: Available - device has SMART capability.
SMART support is: Disabled
SMART Disabled. Use option -s with argument 'on' to enable it.
まずこんな感じ。SMART Disabled だそうなので有効にする。
# smartctl -s on /dev/hda
:
=== START OF ENABLE/DISABLE COMMANDS SECTION ===
SMART Enabled.
SMART を有効にした。エラーログを見てみる。
# smartctl -l error /dev/hda
:
=== START OF READ SMART DATA SECTION ===
SMART Error Log Version: 1
ATA Error Count: 25 (device log contains only the most recent five errors)
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 25 occurred at disk power-on lifetime: 111 hours (4 days + 15 hours)
When the command that caused the error occurred, the device was in an unknown state.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 4d 37 1e 2a ee Error: UNC 77 sectors at LBA = 0x0e2a1e37 = 237641271
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 f0 37 1e 2a ee 08 2d+22:20:48.128 READ DMA
c8 00 f8 2f 1e 2a ee 08 2d+22:20:47.120 READ DMA
c8 00 00 27 1e 2a ee 08 2d+22:20:46.096 READ DMA
c8 00 00 27 1d 2a ee 08 2d+22:20:46.080 READ DMA
c8 00 00 27 1c 2a ee 08 2d+22:20:46.064 READ DMA
:
先に記録されたセクタで UNC (UncorrectableError) と記録されている。ショートテストをしてみる。
# smartctl -t short /dev/hda
:
=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Tue Feb 7 15:14:49 2006
Use smartctl -X to abort test.
テストに2分かかるようなので待つ。結果を表示。
# smartctl -l selftest /dev/hda
:
=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 142 -
ショートテストではエラーは検出されなかったけど、やばそうなことに変わりはない。
_ [comp] dd でセクタ調査
最近記録されてるやばそうなセクタを調べてみる。
zcat /var/log/syslog*gz | grep "dev hda" | awk '{print $12}' | sort -n > /tmp/sectors
for i in `cat /tmp/sectors`
dd if=/dev/hda of=/tmp/dd-${i}.img bs=512 skip=${i} count=1
これで出てきた /tmp/dd-*.img を見てみると、/var/lib/apt/lists/ 以下のファイルと思しき断片が大量に出てきた。そういや apt-get update を実行した時間と syslog にエラーが記録された時間が一致する。他にも謎のバイナリデータの断片が出てきたけど、正体はわからず。 ひとまず /home ではないようなので安心したけど、早めに HDD を換装しなくては。
_ [debian] gkrellm 2.2.7-8
昨日の問題だけど、即 FIX された。 2.2.7-7vd1 を削除。
_ [debian] xft 2.1.8.2-3
pkg-config xft が freetype2 のパスを吐き出してくれない問題が FIX された。
_ [debian] firefox 1.5.dfsg+1.5.0.1-1vd1
- Bugzilla ORG 255990 の patch v3 (alt)
vd_firefox-1.5_without-gconf.patchvd_bugzilla-jp_bug-4575_attachment-3081_fx1.5.patch(Bugzilla-jp 4575 の Patch rv0.10 Fx1.5対応)
を当てて作成。
bugzilla-org_bug-316636_nsTableFrame.cpp-3.622vs3.623.patch (nsTableFrame.cpp: 3.622 vs. 3.623) は不要になったけど、続・MozFx 1.5 が落ちるページ の Bugzilla ORG 316636 は未だに見えない。
また、Pango サポートがデフォルトで有効になった。
2006-02-06 (Mon)
_ [debian] rxvt-unicode 7.5-1vd1
Orphan されてしまった。×問題対策インチキパッチ vd_rxvt-unicode_latin1-supplement-partly_double-width_encoding-jp.patch を当てて作成。
_ [debian] gkrellm 2.2.7-7vd1
なんか ja.gmo が読まれてない気がしたので strace で調べてみると、/usr/share/locale ではなく /usr/local/share/locale を見に行っている。strings でバイナリを覗いてみると、しっかり /usr/local になっていた。報告しておいた。> #351613 ついでに対策したものを作成。
_ [debian] xchat 2.6.1-0vd2
ja.gmo が入ってなかったので作り直し。ja.po は momonga-linux の xchat-ja.po を利用。
_ [debian] audacious 0.2-0vd2
ja.po を更新して作成。モノは送付。> [translation] ja.po
_ [debian] postgresql-common 41 変
upgrade に失敗する。探してみると #351475 のようだ。そこに示されている workaround で回避。
_ [debian] sylpheed 2.1.999+2.2.0beta8-0vd1
作成。