2002-04-22 15:47:53

by Frank van Maarseveen

[permalink] [raw]
Subject: 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


--
Frank