2.4.18: writeback of shared mmap'ed files broken?
A news server has two processes both accessing an "active" file. This file is constantly being updated:
cp /loc/news/lib/active /tmp/active
sleep 1
diff /loc/news/lib/active /tmp/active
(differences)
However, its mtime does not change: it is days too old. Also, after an unclean shutdown and reboot due to a power failure innd seemed to operate on a very old version of the active file.
I don't think innd is calling msync() but IMHO that should not prohibit the kernel from flushing out dirty pages at regular interval.
AFAIK there was a bug in the past with shared mmap'ed files but I thought it was fixed a long time ago.
# lsof|grep lib/active
actived 30695 news mem REG 3,4 70078 209527 /loc/news/lib/active innd 30696 news mem REG 3,4 70078 209527 /loc/news/lib/active innd 30696 news 16u REG 3,4 70078 209527 /loc/news/lib/active # grep lib/active /proc/3069[56]/maps 4018b000-4019d000 r--s 00000000 03:04 209527 /loc/news/lib/active 40425000-40437000 rw-s 00000000 03:04 209527 /loc/news/lib/active
Signature · 1 line
Frank