dovecot

----------------
  pop3_lock_session = yes
----------------
※maildir 形式は以下の URL で構築
postfix, dovecotのインストールと MailDir の使用
 
・mbox 形式
dovecot (以下の pop3) が mbox (/var/spool/mail/hijiri) に書き込みロックをかける
  1番目のプロセスが終了するまで、2番目のプロセスは応答なし
 
pop3      3465    hijiri    6uW     REG      253,0      757    3409176 /var/spool/mail/hijiri
 
                       W for a write lock on the entire file;
 
 
     tqdovecot(3437)qwqdovecot-auth(3438)
        x               tqimap-login(3443)
        x               tqimap-login(3444)
        x               tqimap-login(3445)
        x               tqpop3(3465)
                          ^^^^^^^^^^
        x               tqpop3-login(3440)
        x               tqpop3-login(3441)
        x               mqpop3-login(3463)
        tqeggcups(2828)
 
・maildir
→2番目のプロセスは 2 分でタイムアウト
  1番目のプロセスも数分するとタイムアウトになる
[test01@HIJIRI01 ~]$ telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
+OK Dovecot ready.
pass hijiri
-ERR No username given.
user test01
+OK
pass hijiri
+OK Logged in.
list
-ERR [IN-USE] Couldn't open INBOX: Timeout while waiting for lock
Connection closed by foreign host.
[test01@HIJIRI01 ~]$
 
→おそらく以下のとおり約2分
Apr 30 21:26:13 HIJIRI01 postfix/qmgr[4333]: AC2F034803A: removed
Apr 30 21:49:16 HIJIRI01 dovecot: pop3-login: Login: user=<test01>, method=PLAIN, rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, secured
Apr 30 21:49:27 HIJIRI01 dovecot: pop3-login: Login: user=<test01>, method=PLAIN, rip=::ffff:127.0.0.1, lip=::ffff:127.0.0.1, secured★
Apr 30 21:51:29 HIJIRI01 dovecot: POP3(test01): Couldn't open INBOX: Timeout while waiting for lock★
Apr 30 21:51:29 HIJIRI01 dovecot: POP3(test01): Couldn't open INBOX top=0/0, retr=0/0, del=0/0, size=0★
Apr 30 21:59:26 HIJIRI01 dovecot: POP3(test01): Disconnected for inactivity top=0/0, retr=0/0, del=0/4, size=2729※1つめのpop3が終了
 
→先に接続した pop3 が mbox と違い、書き込みロックをかけてはいない
[root@HIJIRI01 test01]# pstree -p| grep pop3
        |               |-pop3(27593)
        |               |-pop3(27598)
        |               |-pop3-login(4376)
        |               |-pop3-login(4436)
        |               `-pop3-login(27596)
[root@HIJIRI01 test01]#
[root@HIJIRI01 test01]# lsof | grep 27593
pop3      27593    test01  cwd       DIR      253,0     4096     851983 /home/test01
pop3      27593    test01  rtd       DIR      253,0     4096          2 /
pop3      27593    test01  txt       REG      253,0   560080    1869202 /usr/libexec/dovecot/pop3
pop3      27593    test01  mem       REG      253,0   125736    3999293 /lib/ld-2.5.so
pop3      27593    test01  mem       REG      253,0  1611564    3999294 /lib/libc-2.5.so
pop3      27593    test01  mem       REG      253,0    16428    3999299 /lib/libdl-2.5.so
pop3      27593    test01  mem       REG      253,0    46680    3997736 /lib/libnss_files-2.5.so
pop3      27593    test01  mem       REG      253,0    16384     852002 /home/test01/Maildir/dovecot.index.cache
pop3      27593    test01  mem-R     REG      253,0      192     852003 /home/test01/Maildir/dovecot.index
pop3      27593    test01  mem       REG      253,0      308     852000 /home/test01/Maildir/dovecot.index.log
pop3      27593    test01    0u     IPv6      53643                 TCP HIJIRI01:pop3->HIJIRI01:41855 (ESTABLISHED)
pop3      27593    test01    1u     IPv6      53643                 TCP HIJIRI01:pop3->HIJIRI01:41855 (ESTABLISHED)
pop3      27593    test01    2w     FIFO        0,6               53659 pipe
pop3      27593    test01    3r      CHR        1,9                 696 /dev/urandom
pop3      27593    test01    4r     FIFO        0,6               53662 pipe
pop3      27593    test01    5w     FIFO        0,6               53662 pipe
pop3      27593    test01    6u      REG      253,0      194     852004 /home/test01/Maildir/temp.HIJIRI01.27593.0833f7d09d6746b3 (deleted)
pop3      27593    test01    7uR     REG      253,0      192     852003 /home/test01/Maildir/dovecot.index
pop3      27593    test01    8u      REG      253,0      308     852000 /home/test01/Maildir/dovecot.index.log
pop3      27593    test01    9u      REG      253,0    16384     852002 /home/test01/Maildir/dovecot.index.cache
[root@HIJIRI01 test01]# lsof | grep 27598
pop3      27598    test01  cwd       DIR      253,0     4096     851983 /home/test01
pop3      27598    test01  rtd       DIR      253,0     4096          2 /
pop3      27598    test01  txt       REG      253,0   560080    1869202 /usr/libexec/dovecot/pop3
pop3      27598    test01  mem       REG      253,0   125736    3999293 /lib/ld-2.5.so
pop3      27598    test01  mem       REG      253,0  1611564    3999294 /lib/libc-2.5.so
pop3      27598    test01  mem       REG      253,0    16428    3999299 /lib/libdl-2.5.so
pop3      27598    test01  mem       REG      253,0    46680    3997736 /lib/libnss_files-2.5.so
pop3      27598    test01    0u     IPv6      53671                 TCP HIJIRI01:pop3->HIJIRI01:41856 (ESTABLISHED)
pop3      27598    test01    1u     IPv6      53671                 TCP HIJIRI01:pop3->HIJIRI01:41856 (ESTABLISHED)
pop3      27598    test01    2w     FIFO        0,6               53687 pipe
pop3      27598    test01    3r      CHR        1,9                 696 /dev/urandom
pop3      27598    test01    4r     FIFO        0,6               53690 pipe
pop3      27598    test01    5w     FIFO        0,6               53690 pipe
[root@HIJIRI01 test01]#
 
→他のプロセスも同様
  ただし、/home/test01/Maildir/dovecot.index に読込ロックあり
[root@HIJIRI01 ~]#
[root@HIJIRI01 ~]# lsof | grep test01
bash       4384    test01  cwd       DIR      253,0     4096     851983 /home/test01
bash       4384    test01  rtd       DIR      253,0     4096          2 /
bash       4384    test01  txt       REG      253,0   729292    1703939 /bin/bash
bash       4384    test01  mem       REG      253,0    46680    3997736 /lib/libnss_files-2.5.so
bash       4384    test01  mem       REG      253,0             3997720 /lib/libc-2.5.so (path inode=3999294)
bash       4384    test01  mem       REG      253,0             3997713 /lib/ld-2.5.so (path inode=3999293)
bash       4384    test01  mem       REG      253,0             3997726 /lib/libdl-2.5.so (path inode=3999299)
bash       4384    test01  DEL       REG      253,0             3997775 /lib/libtermcap.so.2.0.8.#prelink#.ngpXBp
bash       4384    test01  mem       REG      253,0    25462    1248410 /usr/lib/gconv/gconv-modules.cache
bash       4384    test01  mem       REG      253,0 56409760    1151218 /usr/lib/locale/locale-archive
bash       4384    test01    0u      CHR      136,5                   7 /dev/pts/5
bash       4384    test01    1u      CHR      136,5                   7 /dev/pts/5
bash       4384    test01    2u      CHR      136,5                   7 /dev/pts/5
bash       4384    test01  255u      CHR      136,5                   7 /dev/pts/5
pop3      27593    test01  cwd       DIR      253,0     4096     851983 /home/test01
pop3      27593    test01  rtd       DIR      253,0     4096          2 /
pop3      27593    test01  txt       REG      253,0   560080    1869202 /usr/libexec/dovecot/pop3
pop3      27593    test01  mem       REG      253,0   125736    3999293 /lib/ld-2.5.so
pop3      27593    test01  mem       REG      253,0  1611564    3999294 /lib/libc-2.5.so
pop3      27593    test01  mem       REG      253,0    16428    3999299 /lib/libdl-2.5.so
pop3      27593    test01  mem       REG      253,0    46680    3997736 /lib/libnss_files-2.5.so
pop3      27593    test01  mem       REG      253,0    16384     852002 /home/test01/Maildir/dovecot.index.cache
pop3      27593    test01  mem-R     REG      253,0      192     852003 /home/test01/Maildir/dovecot.index
pop3      27593    test01  mem       REG      253,0      308     852000 /home/test01/Maildir/dovecot.index.log
pop3      27593    test01    0u     IPv6      53643                 TCP HIJIRI01:pop3->HIJIRI01:41855 (ESTABLISHED)
pop3      27593    test01    1u     IPv6      53643                 TCP HIJIRI01:pop3->HIJIRI01:41855 (ESTABLISHED)
pop3      27593    test01    2w     FIFO        0,6               53659 pipe
pop3      27593    test01    3r      CHR        1,9                 696 /dev/urandom
pop3      27593    test01    4r     FIFO        0,6               53662 pipe
pop3      27593    test01    5w     FIFO        0,6               53662 pipe
pop3      27593    test01    6u      REG      253,0      194     852004 /home/test01/Maildir/temp.HIJIRI01.27593.0833f7d09d6746b3 (deleted)
pop3      27593    test01    7uR     REG      253,0      192     852003 /home/test01/Maildir/dovecot.index
pop3      27593    test01    8u      REG      253,0      308     852000 /home/test01/Maildir/dovecot.index.log
pop3      27593    test01    9u      REG      253,0    16384     852002 /home/test01/Maildir/dovecot.index.cache
bash      27602      root  cwd       DIR      253,0     4096     851983 /home/test01
[root@HIJIRI01 ~]#
 
→ただし、接続中は /home/test01/Maildir/dovecot-uidlist.lock が作成される
・1つ目の接続継続中
--------------------------------------------------------
[root@HIJIRI01 Maildir]# lsof | grep dovecot-uidlist.lock
[root@HIJIRI01 Maildir]# find
.
./dovecot-uidlist.lock★
./dovecot.index.cache
./dovecot.index
./new
./cur
./cur/1335787997.Vfd00Id001aM177071.HIJIRI01:2,S
./cur/1335787997.Vfd00Id001bM204054.HIJIRI01:2,S
./cur/1335788773.Vfd00Id0021M886223.HIJIRI01:2,
./cur/1335788005.Vfd00Id001cM822970.HIJIRI01:2,S
./dovecot-uidlist
./dovecot.index.log
./tmp
[root@HIJIRI01 Maildir]#
--------------------------------------------------------
 
・1つ目の接続終了
--------------------------------------------------------
 
[root@HIJIRI01 Maildir]# find
.
./dovecot.index.cache
./dovecot.index
./new
./cur
./cur/1335787997.Vfd00Id001aM177071.HIJIRI01:2,S
./cur/1335787997.Vfd00Id001bM204054.HIJIRI01:2,S
./cur/1335788773.Vfd00Id0021M886223.HIJIRI01:2,
./cur/1335788005.Vfd00Id001cM822970.HIJIRI01:2,S
./dovecot-uidlist
./dovecot.index.log
./tmp
[root@HIJIRI01 Maildir]#
--------------------------------------------------------