Hello Keith,

On Wednesday, December 18, 2002 at 6:16:41 PM you [KR] wrote (at least
in part):

[POP-locks]
KR> Has anyone seen this?

Yes and no.

The good news first: The Bat! ain't the culprit. No version of it,
neither past nor future versions are or will be.

No to the "yes" part of my answer: I've seen this several time, no
matter what mail client (MUA) is involved. It's a pure 'server side
issue' and if your tech support ain't able to figure out what causes
the problem (I don't mention they should offer a solution in the
first!) it ain't "first rate" in this case, I'm sorry.

The technical background:

If a mail for you gets delivered to your ISP's mail server (MTA) it is
stored somehow, somewhere. In your case this seems to be a 'Mailbox',
in opposite to e.g. a 'Maildir' or a database.
This mailbox contains all messages in a serial form. One following the
other. Export any Folder with two or more mails from The Bat! to 'Unix
Mailbox' and you get the very same.
So if two mails come in the box gets "locked", the first mail is
written (stored), the lock is released and the second delivery process
is able to store the second mail. Else both processes would write
"mixed" and therefore inconsistence would be the result.

A 'POP-lock' is similar. Your POP3-server (the ISP ones) "locks" the
mailbox for (temporarily) no new messages being delivered, but held in
queue, until you finished fetching your mail. Why? Imagine the
POP-server-process gets told to hand out message #19.
You have 18 stored. w/ a lock he can _for sure_ tell you: there're
only 18, go away. w/o a lock he'd have to have a look if the mailbox
file changed. And yes, it is!!! So it streams msg #19 to you ... but
you read the mail, it's cut in the middle of a line. The delivery
process had stored (written) only half the message when your
POP-server decided to hand this message out ... *tztztztz*.
So this lock makes sense (for Mailbox files. Maildir, MH and DB for
example work different in storing mails and therefore can avoid the
lock.).

Well, when is the lock established? It's established after you've
authenticated successfully and the POP3-server know what mailbox file
to deal with. When is it released? It's released after you (your MUA)
have sent a 'QUIT' command to tell the server: "OK, this session is
over.".
How is it established? There're two possibilities:
1.) A file locking. The process tells the system to lock this file and
    don't let any other process write (or even read) it.
    As for example NFS, a "Network File System" does not handle file
    locks properly (or even is completely unable in prior versions),
    but chances are high the storage space for mail boxes is separated
    from the server itself and therefore included "remotely" this
    ain't practiced.
2.) The POP3-server copies the whole mailbox file to a temporary file
    and copies it back after finishing the session.
    Every other process dealing with mail (a concurrent POP3-process
    or a delivery process) checks for this second file and "knows"
    it's a 'lock' by the naming scheme (e.g. '8o4q-skup' mailbox file
    becomes '.8o4q-skup.lock' lock file) and where this lock belongs.

If your POP3 session fails, e.g. because your connection was dropped
the server removes the lock in a way no changes to your "real" mailbox
are done. Means: even if you've already received some messages and
deleted them they're copied back to your mailbox file, for
consistence. If your mailbox is big enough and the servers load too,
this might take some time, from seconds to minutes. It depends.
If you try to authenticate and retrieve your mails while the "store
back" process is ongoing you're getting the "POP box locked" error,
because the lock file exists until the last bit is written back.
But there's another reason why this lock might stay: your server
didn't recognize the connection dropped. The POP3-process was not told
by network layer the connection ain't established anymore. This might
either be a intermediate proxy that did not close the connection yet
or any other network problem, there're many that are imaginable.
In this case the POP3-process "thinks" you're still connected and your
attempt to log in is a "concurrent login to the same mailbox" (from
its POV).

So your solution is to wait the 'timeout', usually around 10 minutes,
before trying again. It's no "real" solution, but the only thing you
can do at the moment. And this is the point why your support ain't
"first rate". They should be able to see whether the POP3-process is
"in moving back the lock file" or it is "assuming an alive
connection". In the former case the original mailbox file would grow
and grow, albeit the lock file still exists. This is an indicator the
server is copying the mails back.
In the latter case they should be able to see in log files and with
the help of 'netstat' your connection is assumed to be "still open"
and could try to figure out if there's a "point of failure" in their
network that might cause net congestions.
If you have any proxying software, like Wingate, SpamPal or any other
software that "inspects" or "handles" your POP3 connections installed
I'd deactivate it for testing if this might be the culprit. A not to
seldom seen candidate is for example NAV.

If you can exclude anything on your side of the internet connection
your ISP, respective its tech support, should be able to drive an
"observed POP3 session" to hunt down systematically the possible cause
of your trouble, in no case it is The Bat!. The Bat! recognizes if a
POP3 session is still active and refuses to open a second, concurrent
one, and therefore can't be the source of all this evil :-)
-- 
Best Regards
Peter Palmreuther
(The Bat! v1.62 Beta/17 on Windows 2000 5.0 Build 2195 Service Pack 1)

To save a single life is better than to build a seven-story pagoda.


________________________________________________
Current version is 1.62 | "Using TBUDL" information:
http://www.silverstones.com/thebat/TBUDLInfo.html

Reply via email to