やるきなし

2016/07/22 10:09 / mediawiki on Debian/GNU Linux jessie

ふと aptitude を見てみると mediawiki (1:1.19.20+dfsg-2.3) が Obsolete and Locally Created Packages に分類されていた.どうやら jessie から削除された模様

調べてみるとEarly termination of MediaWiki security supportとのことで,当初からjessieから削除予定だった模様(1.19 のセキュリティサポートがjessieの次のstretchのリリースの前,というか既に終了した模様).

ということで,mediawiki 1.27 を自前でインストールする.

1.19 では日本語検索のために BruteSearch を導入していたのであるが,同ページの情報によると1.23.xで動作しないとのことで,導入を見送る.

BruteSearch のかわりに Elasticsearchを導入.Install は https://www.mediawiki.org/wiki/Extension:CirrusSearch参照.設定(index生成)等はhttps://phabricator.wikimedia.org/diffusion/ECIR/browse/master/README参照.

別途 elasticsearch (java で動く deamon)を導入する必要があるが,これは Debian package でインストールする.ただし jessie で提供される 1.0.3 だと,検索してみても

An error has occurred while searching: We could not complete your search due to a temporary problem. Please try again later.

などと表示されるだけで検索できない.backports から 1.6.2+dfsg-1~bpo8+1 を install すれば (jessie でも)ちゃんと動く.

2016/07/21 16:08 / チャット・メッセンジャーアプリ

なんだかいろいろあってわけがわからない.

2016/07/15 12:01 / CacheFiles BUG (Linux 4.6.x)

Since 4.5.7 is the last release of 4.5 series, I tried to update my server to 4.6.4. However, the following disturbs my upgrading to 4.6.4.
BUG: unable to handle kernel NULL pointer dereference at 0000000000000098
IP: [<ffffffff8127343f>] cachefiles_mark_object_inactive+0x4f/0xa0
PGD 0
Oops: 0000 [#1] SMP
Modules linked in: dm_crypt dm_mod algif_skcipher af_alg rpcsec_gss_krb5 overlay squashfs ext4 crc16 jbd2 mbcache loop cpufreq_powersave cpufreq_userspace cpufreq_conservative cpufreq_ondemand cpufreq_stats binfmt_misc nfsd btrfs xor raid6_pq sg sr_mod cdrom sd_mod intel_rapl x86_pkg_temp_thermal intel_powerclamp kvm_intel kvm irqbypass crct10dif_pclmul crct10dif_common crc32_pclmul ghash_clmulni_intel sha256_ssse3 sha256_generic snd_hda_codec_hdmi drbg ansi_cprng hid_generic uas usbhid snd_hda_codec_realtek usb_storage snd_hda_codec_generic hid snd_hda_intel aesni_intel snd_hda_codec aes_x86_64 iTCO_wdt snd_hda_core ablk_helper iTCO_vendor_support snd_pcm ahci cryptd snd_timer libahci lrw nvidiafb evdev snd gf128mul libata vgastate soundcore glue_helper lpc_ich mei_me scsi_mod pcspkr acpi_cpufreq serio_raw i2c_i801 mfd_core mei shpchp tpm_tis rtc_cmos tpm button processor md_mod fbcon bitblit fbcon_rotate fbcon_ccw fbcon_ud fbcon_cw softcursor tileblit lm78 hwmon_vid f71882fg i5k_amb coretemp msr nvidia(PO) drm agpgart fuse autofs4 crc32c_intel xhci_pci ehci_pci xhci_hcd ehci_hcd usbcore usb_common
CPU: 2 PID: 926 Comm: kworker/u16:4 Tainted: P           O    4.6.4-myn-01+ #95
Hardware name: OEM something
Workqueue: fscache_object fscache_object_work_func
task: ffff88042c02f2c0 ti: ffff880425fa4000 task.ti: ffff880425fa4000
RIP: 0010:[<ffffffff8127343f>]  [<ffffffff8127343f>] cachefiles_mark_object_inactive+0x4f/0xa0
RSP: 0018:ffff880425fa7d90  EFLAGS: 00010286
RAX: 0000000000000000 RBX: ffff88042ac14400 RCX: 0000000000000034
RDX: ffff88043f7ceb10 RSI: ffff8803c219f390 RDI: ffff88043f7ceb08
RBP: ffff8803c219f280 R08: 0000000000000000 R09: 00000000000000ec
R10: 0000000000000000 R11: 0000000000000000 R12: ffff88042ca2f000
R13: ffff88042ac14400 R14: 00000000ffffffff R15: 00000000ffffb96f
FS:  0000000000000000(0000) GS:ffff88043f480000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000098 CR3: 0000000001c06000 CR4: 00000000000406e0
Stack:
 ffff8803c219f280 ffff88042ac14400 ffffffff81271c75 ffff8803c219f280
 ffff880418c4c140 ffff8803bf985a50 ffffffff8120a74a ffff8803c219f310
 ffffffff81827580 ffff8803c219f280 000000000000006d ffffffff8120aae9
Call Trace:
 [<ffffffff81271c75>] ? cachefiles_drop_object+0xd5/0x180
 [<ffffffff8120a74a>] ? fscache_drop_object+0xda/0x260
 [<ffffffff8120aae9>] ? fscache_object_work_func+0xf9/0x460
 [<ffffffff8106e925>] ? process_one_work+0x135/0x3c0
 [<ffffffff8106ec0d>] ? worker_thread+0x5d/0x470
 [<ffffffff8106ebb0>] ? process_one_work+0x3c0/0x3c0
 [<ffffffff81073e2a>] ? kthread+0xca/0xe0
 [<ffffffff81603402>] ? ret_from_fork+0x22/0x40
 [<ffffffff81073d60>] ? kthread_create_on_node+0x170/0x170
Code: 11 09 00 48 8d bd 10 01 00 00 f0 80 a5 10 01 00 00 fe c6 83 20 01 00 00 00 31 f6 e8 7c b7 e1 ff 48 8b 85 f8 00 00 00 48 8b 40 30 <48> 8b 80 98 00 00 00 f0 48 01 83 30 01 00 00 b8 01 00 00 00 f0
RIP  [<ffffffff8127343f>] cachefiles_mark_object_inactive+0x4f/0xa0
 RSP <ffff880425fa7d90>
CR2: 0000000000000098
---[ end trace 0b204b8eafde5e55 ]---

Function cachefiles_mark_object_inactive is introduced at CacheFiles: Provide read-and-reset release counters for cachefilesd. So when I revert this commit, my linux 4.6.4 system works fine.

P.S.(2016/7/16)

My system is Debian GNU/Linux stable (jessie). The version of cachefilesd is 0.10.5-1. I may need to update this to the latest one, 0.10.9, which includes Suspend/resume culling based on recently released file/block counts.

2016/07/02 23:54 / RAID5 resync が起動時に始まってしまい,いつまでてっても起動しない

Root file system を RAID5 (software RAID w/Intel Rapid Storage Technology)にしていて,再起動時にうまく clean な状態で再起動できず verify flag が立ってしまうと,initramfs の時点で resync が開始されてしまい,いつまで経ってもまともに起動しないという話.ファイルサーバなのでさくっと起動してもらわないと困る.

なんとかする方法は以下.

これでひとまずは起動するはず.起動した後は

# echo 5000 > /sys/block/md126/md/sync_speed_max
# echo idle > /sys/block/md126/md/sync_action
# ionice -c -p (md126_resync's pid)

とかをしてじっくり resync する.resync の状況は /proc/mdstat で

md126 : active raid5 sda[3] sdb[2] sdc[1] sdd[0]
      8351277056 blocks super external:/md127/0 level 5, 128k chunk, algorithm 0 [4/4] [UUUU]
      [============>........]  resync = 63.3% (1763918288/2783759232) finish=3019.9min speed=5627K/sec

の様に確認できる.以下,試行錯誤の経緯.

Root file system は RAID5 かつ btrfs なのだが,当初は fsck.btrfs の箇所でなかなか終わらない状況だった.fastboot で fsck を skip しても,起動のあらゆるステップで時間がかかってしまい

INFO: task something blocked for more than 120 seconds.

的な warning が連発する.ということで resync を止めざるを得ないということになった.幸い initrd の backup があったので,適当な directory を掘ってそこで,

zcat /somewhere/initrd.img-4.X.X-something-amd64 | cpio -i

して眺めた感じ,boot option break の存在と

[scripts/local-top/mdadm] の最後の箇所
maybe_break post-mdadm

exit 0

というように RAID の認識が終わったところで,break=post-mdadm で break point を設定できることがわかったので,それでなんとか対処することにした.

RAID の resync を中断する方法は man mdadm 等で調査.mdadm 自体 initrd に含まれているが,直接/sys/block/md126/md/sync_actionにアクセスする方が簡便.ちなみにfrozenだと中断され,idle だと中断されはするがすぐに再開される.

あとはbtrfsのfsckがskipされて気持ち悪いが,

% sudo btrfs scrub start -r -c3 /

で scrub をして,しばらくの後に

% sudo btrfs scrub status /   
scrub status for XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
        scrub started at XXXX and finished after 11487 seconds
        total bytes scrubbed: 2.96TiB with 0 errors

のように 0 errors を確認しておく.

2016/06/15 11:10 / aptitude でインストールを指示した package をリストする

新たにクリーンインストールする時とかのために.

aptitude search '?and(~i !~M)'