[sisyphus] Re: 2.4.20-alt9 reiserfs locks
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пн Авг 18 20:49:57 MSD 2003
On Mon, 18 Aug 2003 20:43:51 +0400
Sergey Vlasov <vsu на altlinux.ru> wrote:
> On Mon, 18 Aug 2003 18:56:23 +0300 (EEST)
> Andrei Bulava <raven98 на ukr.net> wrote:
>
> > On Mon, 18 Aug 2003, Grigory Batalov wrote:
> >
> > > On Mon, 18 Aug 2003 08:17:30 +0400
> > > Grigory Batalov <grisxa на mail.ru> wrote:
> > >
> >
> > <skip>
> >
> > > А вот при доступе в INBOX
> > > запускается imapd и ждёт разрешения блокировки (?)
> > > /var/mail/bga
> > > от procmail.
> >
> > Аналогичная проблема c 2.4.20-alt9-up: /var на reiserfs, imapd у
> > пользователя засыпает в ожидании разрешения блокировки от
> > procmail.
> >
> > Но! Фишка в том, что проблема (race condition?) возникает ещё до
> > попытки забрать почту по imap, а точнее -
> >
> > # fuser -v /var/spool/mail/jinxed-user
> >
> > показывает два процесса procmail, каждый из которых после
> > таймаута пишет в /var/log/maillog:
> >
> > temporary failure. Command output: procmail: Terminating
> > prematurely whilst waiting for a kernel-lock
> >
> > А проблема с imapd - всего лишь самое очевидное последствие того,
> > что два procmail'a не отпускают /var/spool/mail/jinxed-user.
> >
> > На 2.4.20-alt7-up & 2.4.20-alt8-up описанной выше проблемы не
> > возникало, правда 2.4.20-alt8-up работало слишком мало (5,5
> > суток), но 2.4.20-alt7-up - с 31 мая до выхода 2.4.20-alt8-up.
> >
> > На 2.4.20-alt9-up ситуация повторялась дважды за последние 5
> > суток. В первый раз хватило fuser -k /var/spool/mail/jinxed-user;
> > во второй - пришлось делать reboot :-/ После третьего раза
> > придётся откатываться на 2.4.20-alt7-up, хотя лично меня такой
> > откат стремает...
> >
> > P.S. Получил первое наглядное доказательство небезосновательности
> > предубеждённости людей против reiserfs - как всегда не вовремя
> > ;-(((
>
> Как я и подозревал, ситуация воспроизвелась и на xfs:
>
> $ for ((i=0; i < 32; ++i)) do echo "Test $i" | mail -s "Test $i" vsu; done
>
> Пришло 23 письма, после чего наблюдается такая же картина:
>
> $ /usr/sbin/lsof /var/mail/vsu
> COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
> procmail 2830 vsu 4w REG 3,6 10238 21251086 /var/spool/mail/vsu
> procmail 2831 vsu 4w REG 3,6 10238 21251086 /var/spool/mail/vsu
>
> $ strace -v -p 2830
> fcntl64(4, F_SETLKW, ptrace: umoven: Input/output error
> {...} <unfinished ...>
> $ strace -v -p 2831
> fcntl64(4, F_SETLKW, ptrace: umoven: Input/output error
> {...} <unfinished ...>
При этом:
$ cat /proc/locks
1: FLOCK ADVISORY READ 2737 03:06:25614777 0 EOF c12554b4 c0220570 c1255348 00000000 c12554c0
2: FLOCK ADVISORY READ 2724 03:06:25614776 0 EOF c1255344 c12554b8 c12555cc 00000000 c1255350
3: POSIX ADVISORY WRITE 2826 03:06:21691476 9792 EOF c12555c8 c1255348 c1255234 00000000 c12555d4
4: FLOCK ADVISORY WRITE 1932 03:06:4346877 0 EOF c1255230 c12555cc c125517c 00000000 c125523c
5: POSIX ADVISORY WRITE 1540 03:06:12590440 0 EOF c1255178 c1255234 c1255120 00000000 c1255184
6: FLOCK ADVISORY WRITE 1455 03:06:12583054 0 EOF c125511c c125517c c12551d8 00000000 c1255128
7: POSIX ADVISORY WRITE 1442 03:06:12583053 0 EOF c12551d4 c1255120 c0220570 00000000 c12551e0
Процесс 2724 (ps axl):
4 42 2724 1932 9 0 4868 1452 1447c2 S ? 0:00 local -t unix
Процесс 2826, который якобы заблокировал этот файл через POSIX lock
(fcntl) на запись, отсутствует.
Подробная информация о списке рассылки Sisyphus