こないだの続き。
その後システムをFreeBSD 10-STABLE (r283857)に更新しL2ARCを有効にしていたが、これまた、たまたまzpool iostat
を流してたら16EBになる瞬間を捉えられた。
capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 68 0 8.01M mirror 731G 197G 0 68 0 8.01M ada0p1 - - 0 68 0 8.13M ada3p1 - - 0 74 0 8.88M logs - - - - - - mirror 128K 7.94G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 1.78M 0 0 0 0 ---------- ----- ----- ----- ----- ----- ----- capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 369 0 16.3M mirror 731G 197G 0 369 0 16.3M ada0p1 - - 0 197 0 16.2M ada3p1 - - 0 191 0 15.5M logs - - - - - - mirror 13.8M 7.92G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 16.0E 0 63 0 7.96M ★★ここ★★ ---------- ----- ----- ----- ----- ----- ----- capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 0 0 0 mirror 731G 197G 0 0 0 0 ada0p1 - - 0 0 0 0 ada3p1 - - 0 0 0 0 logs - - - - - - mirror 13.8M 7.92G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 1.40M 0 33 0 4.25M ---------- ----- ----- ----- ----- ----- ----- capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 0 0 0 mirror 731G 197G 0 0 0 0 ada0p1 - - 0 0 0 0 ada3p1 - - 0 0 0 0 logs - - - - - - mirror 13.8M 7.92G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 924K 0 37 0 4.74M ---------- ----- ----- ----- ----- ----- ----- capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 0 0 0 mirror 731G 197G 0 0 0 0 ada0p1 - - 0 0 0 0 ada3p1 - - 0 0 0 0 logs - - - - - - mirror 13.8M 7.92G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 424K 0 41 0 5.24M ---------- ----- ----- ----- ----- ----- ----- capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 0 0 0 mirror 731G 197G 0 0 0 0 ada0p1 - - 0 0 0 0 ada3p1 - - 0 0 0 0 logs - - - - - - mirror 13.8M 7.92G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 16.0E 0 46 0 5.86M ★★ここ★★ ---------- ----- ----- ----- ----- ----- ----- capacity operations bandwidth pool alloc free read write read write ---------- ----- ----- ----- ----- ----- ----- zhome 731G 197G 0 77 0 9.12M mirror 731G 197G 0 77 0 9.12M ada0p1 - - 0 77 0 9.24M ada3p1 - - 0 84 0 10.1M logs - - - - - - mirror 13.8M 7.92G 0 0 0 0 ada1p3 - - 0 0 0 0 ada9p3 - - 0 0 0 0 cache - - - - - - ada9p5 40.0G 16.0E 0 0 0 0 ---------- ----- ----- ----- ----- ----- -----
L2ARCの空きが無くなると16.0Eになるっぽい。unsigned
な型で負数を扱おうとして爆発してるように見える。というか、r273060のコミットログに、思いっきり「the number became negative and overflows」と理由が載っていた(´・ω・`)
更にarc.c
のログを追っていたら、r275096で修正がリバートされてるやないか!4Kセクタデバイスを考慮しておらず正しい修正ではなかったとの事……。解決には時間が掛かりそうな雰囲気。