[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