Yes, cross-copy from mbx to traditional Unix is the main deadlock that was fixed.

On Wed, 16 Apr 2008, Ken Keating wrote:
That seems to be an accurate interpretation. Since you indicated there is always a read lock on the mbx mailbox, apparently process 6509 can't complete until the write lock held by pid 518 is released.

The only mbx format mailbox is /var/mail/myuser.mbx, everything else is a traditional format mailbox, including /home/myuser/Mail/Trash. We're running version 2006j. The release notes for version 2006k discuss a very similar problem correcting deadlock issues. Since our mail clients eventually recover I wasn't positive this was the same problem. If it is, the deadlock must get broken after a timeout period of about 30 mins.

We're going to install the latest release to see if this fixes our problem.

Ken Keating

Mark Crispin wrote, On 04/15/08 21:33:
In mbx format, there is always a read lock on the mbx mailbox.

If I'm interpreting this output correctly, process 518 is stuck and sitting on the write lock for the file in question (what format is /home/myuser/Mail/Trash ?) and that causes the bottleneck.

Also, what version are you running? This may be something that I already fixed.

On Tue, 15 Apr 2008, Ken Keating wrote:
On Mon, 14 Apr 2008, Ken Mandelberg wrote:
Should there be a problem with imapd serving an mbx INBOX, with other folders in traditional file format? Some of our users with that setup report hangs trying to move mail from their INBOX to a folder.

There should be no problem.  UW imapd looks at the mailbox contents to
determine its format, and automatically selects the correct driver.

-- Mark --

I'll try to provide some details so hopefully someone can help us pinpoint the problem. I gathered some data from my Thunderbird 2.0.0.6 session this morning when this problem occurred. I attempted to delete a message so it would be moved from my mbx-format inbox to a traditional-format trash folder. To aid our investigation we wrote a simple script called imapwho:

[EMAIL PROTECTED] ~]# cat imapwho
#!

if [ $# = 1 ]
then
       who="-u $1"
fi

for i in `pgrep $who imap`
do
       echo ==============
        ps -fp $i |grep -v UID
        pfiles $i |egrep "peer|/var/mail|home|lock" |uniq
done


When this problem first appeared, this script showed:

[EMAIL PROTECTED] ~]# imapwho myuser
==============
myuser   585   307   0 08:32:05 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62815
     /home/myuser/Mail/Sun_cases/65881036
==============
myuser   564   307   0 08:31:57 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62814
     /home/myuser/Mail/Sun_cases/65623982
==============
myuser   545   307   0 08:31:49 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62813
     /home/myuser/Mail/Photoshop
==============
myuser   518   307   0 08:31:33 ?           0:01 imapsd
       peername: AF_INET 170.140.150.120  port: 62812
     /home/myuser/Mail/Trash
==============
myuser  6509   482   0 09:02:25 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62809
     advisory read lock set by process 482
     /var/mail/myuser.mbx
     /home/myuser/Mail/Trash
     advisory write lock set by process 518
==============
myuser   482   307   0 08:31:26 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62809
     /var/mail/myuser.mbx


About a minute later we see:

[EMAIL PROTECTED] ~]# imapwho myuser
==============
myuser   585   307   0 08:32:05 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62815
     /home/myuser/Mail/Sun_cases/65881036
==============
myuser  6686   307   0 09:03:29 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62866
     advisory read lock set by process 482
     /var/mail/myuser.mbx
==============
myuser   564   307   0 08:31:57 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62814
     /home/myuser/Mail/Sun_cases/65623982
==============
myuser   545   307   0 08:31:49 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62813
     /home/myuser/Mail/Photoshop
==============
myuser   518   307   0 08:31:33 ?           0:01 imapsd
       peername: AF_INET 170.140.150.120  port: 62812
     /home/myuser/Mail/Trash
==============
myuser  6710  6686   0 09:03:32 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62866
     advisory read lock set by process 6686
     /var/mail/myuser.mbx
     /home/myuser/Mail/Trash
     advisory write lock set by process 518
==============
myuser  6509   482   0 09:02:25 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62809
     advisory read lock set by process 6686
     /var/mail/myuser.mbx
     /home/myuser/Mail/Trash
     advisory write lock set by process 518
==============
myuser   482   307   0 08:31:26 ?           0:00 imapsd
       peername: AF_INET 170.140.150.120  port: 62809
     advisory read lock set by process 6686
     /var/mail/myuser.mbx



Note the concurrent advisory read and write locks. Once this occurs we continually get an authentication and an attempt to move the message every 1+ minutes. This results in two more imapsd processes being started. After about 30 mins everything clears up and the message is successfully moved. All other mail actions are suspended during this time. Just before recovery there are 26 imapsd processes with read and write locks as well as 26 imapsd processes with read locks on the inbox. A ps at this time shows (note: the problem began around the time the 9:02:25 imapsd process was started):

[EMAIL PROTECTED]> ps -ef|grep myuser|grep imap|grep -v grep|sort -k5
myuser   482   307   0 08:31:26 ?           0:00 imapsd
myuser   518   307   0 08:31:33 ?           0:01 imapsd
myuser   545   307   0 08:31:49 ?           0:00 imapsd
myuser   564   307   0 08:31:57 ?           0:00 imapsd
myuser   585   307   0 08:32:05 ?           0:00 imapsd
myuser  6509   482   0 09:02:25 ?           0:00 imapsd
myuser  6686   307   0 09:03:29 ?           0:00 imapsd
myuser  6710  6686   0 09:03:32 ?           0:00 imapsd
myuser  6861   307   0 09:04:37 ?           0:00 imapsd
myuser  6862  6861   0 09:04:38 ?           0:00 imapsd
myuser  6999   307   0 09:05:42 ?           0:00 imapsd
myuser  7009  6999   0 09:05:45 ?           0:00 imapsd
myuser  7182   307   0 09:06:50 ?           0:00 imapsd
myuser  7199  7182   0 09:06:52 ?           0:00 imapsd
myuser  7327   307   0 09:07:56 ?           0:00 imapsd
myuser  7330  7327   0 09:07:58 ?           0:00 imapsd
myuser  7859   307   0 09:09:03 ?           0:00 imapsd
myuser  7922  7859   0 09:09:15 ?           0:00 imapsd
myuser  8423   307   0 09:10:20 ?           0:00 imapsd
myuser  8427  8423   0 09:10:21 ?           0:00 imapsd
myuser  8534   307   0 09:11:26 ?           0:00 imapsd
myuser  8535  8534   0 09:11:29 ?           0:00 imapsd
myuser  8675   307   0 09:12:34 ?           0:00 imapsd
myuser  8676  8675   0 09:12:36 ?           0:00 imapsd
myuser  8901   307   0 09:13:40 ?           0:00 imapsd
myuser  8902  8901   0 09:13:42 ?           0:00 imapsd
myuser  9055   307   0 09:14:48 ?           0:00 imapsd
myuser  9073  9055   0 09:14:49 ?           0:00 imapsd
myuser  9233   307   0 09:15:52 ?           0:00 imapsd
myuser  9237  9233   0 09:15:54 ?           0:00 imapsd
myuser  9511   307   0 09:16:59 ?           0:00 imapsd
myuser  9529  9511   0 09:17:13 ?           0:00 imapsd
myuser  9827   307   0 09:18:16 ?           0:00 imapsd
myuser  9828  9827   0 09:18:19 ?           0:00 imapsd
myuser 10126   307   0 09:19:24 ?           0:00 imapsd
myuser 10135 10126   0 09:19:27 ?           0:00 imapsd
myuser 10926   307   0 09:20:31 ?           0:00 imapsd
myuser 10927 10926   0 09:20:35 ?           0:00 imapsd
myuser 11624   307   0 09:21:38 ?           0:00 imapsd
myuser 11625 11624   0 09:21:40 ?           0:00 imapsd
myuser 12100   307   0 09:22:44 ?           0:00 imapsd
myuser 12101 12100   0 09:22:45 ?           0:00 imapsd
myuser 12534   307   0 09:23:49 ?           0:00 imapsd
myuser 12539 12534   0 09:23:52 ?           0:00 imapsd
myuser 12878   307   0 09:24:56 ?           0:00 imapsd
myuser 12881 12878   0 09:24:58 ?           0:00 imapsd
myuser 13309   307   0 09:26:03 ?           0:00 imapsd
myuser 13348 13309   0 09:26:15 ?           0:00 imapsd
myuser 13799   307   0 09:27:20 ?           0:00 imapsd
myuser 13828 13799   0 09:27:22 ?           0:00 imapsd
myuser 14251   307   0 09:28:25 ?           0:00 imapsd
myuser 14252 14251   0 09:28:28 ?           0:00 imapsd
myuser 14623   307   0 09:29:31 ?           0:00 imapsd
myuser 14627 14623   0 09:29:37 ?           0:00 imapsd
myuser 15077   307   0 09:30:41 ?           0:00 imapsd
myuser 15078 15077   0 09:30:45 ?           0:00 imapsd
[EMAIL PROTECTED]> ps -ef|grep myuser|grep imap|grep -v grep|wc
     56     448    3248


Ken Keating

_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw


-- Mark --

http://staff.washington.edu/mrc
Science does not emerge from voting, party politics, or public debate.
Si vis pacem, para bellum.


-- Mark --

http://panda.com/mrc
Democracy is two wolves and a sheep deciding what to eat for lunch.
Liberty is a well-armed sheep contesting the vote.
_______________________________________________
Imap-uw mailing list
[email protected]
https://mailman1.u.washington.edu/mailman/listinfo/imap-uw

Reply via email to