[imp] window resizing
Alain Fauconnet
alain@cscoms.net
Wed, 1 Nov 2000 10:11:59 +0700
On Wed, Nov 01, 2000 at 08:32:15AM +0700, Alain Fauconnet wrote:
> > >>> nan@frosting.cis.brown.edu 10/31/00 6:38:13 PM >>>
> > Hi, list,
> >
> > I'm the person having problems with users getting forced back to the
> > IMP login screen if they are using Netscape and resize their browser
> > windows a couple times.
> >
> > I reconfigured IMP for imap use tonight and while it's in this mode I
> > cannot
> > get the problem to happen, nor can a fellow tester.
>
> I have the same exact problem here: IMP 2.2.4-cvs, PHP 3.0.16, Apache
> 1.3.12, Linux 2.2.16 talking to a Solaris 2.7 uSPARC box with qpopper
> 3.1.
>
> Client is a Linux 2.2.16 box running Netscape 4.75.
>
Ok, I think that I have a fair understanding of what goes on. It looks
like a dual POP session drop locking problem. Here is a summary of the
snooped traffic between the IMP web mail and the POP server when
resizing the window:
IMP POP
======================================================================
------- Syn S=1632,D=110 ----->
<---- Syn Ack S=110,D=1632 ----
------- Ack S=1632,D=110 ----->
<------ Data S=110,D=1632 ----- "+OK Ready"
------- Data D=110,S=1632 ----> "AUTH"
<------ Data S=110,D=1632 ----- "+OK, Follwing are supported..."
------- Data D=110,S=1632 ----> "USER foobar"
<------ Data S=110,D=1632 ----- "+OK, Password required for foobar"
------- Data D=110,S=1632 ----> "PASS foopass"
------- Syn S=1633,D=110 ----->
<---- Syn Ack S=110,D=1633 ----
------- Ack S=1633,D=110 ----->
<------ Data S=110,D=1633 ----- "+OK Ready"
------- Data D=110,S=1633 ----> "AUTH"
<------ Data S=110,D=1633 ----- "+OK, Follwing are supported..."
------- Data D=110,S=1633 ----> "USER foobar"
<------ Data S=110,D=1633 ----- "+OK, Password required for foobar"
------- Data D=110,S=1633 ----> "PASS foopass"
<------ Data S=110,D=1633 ----- "-ERR [IN-USE] /var/mail/.foobar.pop lock
busy! Is another session active? (11)"
------- Data D=110,S=1633 ----> "USER foobar"
<------ Data S=110,D=1632 ----- "+OK, foobar has 4 visible messages..."
------- Data D=110,S=1632 ----> "STAT"
<------ Data S=110,D=1632 ----- "+OK, 4 525594"
------- Data D=110,S=1632 ----> "QUIT"
<------ Data S=110,D=1632 ----- "+OK, POP server at mail signing off"
------- Fin S=1632,D=110 ----->
<---- Fin Ack S=110,D=1632 ----
<------ Data S=110,D=1633 ----- "+OK, POP server at mail signing off"
------- Data D=110,S=1633 ----> "PASS foopass"
<------- Fin S=1633,D=110 -----
---- Fin Ack S=110,D=1633 ---->
So we have a 2nd session being opened although the first one is still
active, causing a maildrop locked error.
Note that the IMP client (could well be PHP's IMAP/POP client code, I
know) gets very confused when the 2nd session gets the maildrop locked
error. It tries to re-send USER and PASS before the POP server
eventually closes the connection.
Now... what causes this ? I don't have much of a clue as to where I
should go digging into the code...
In such a situation, IMAP (UW-IMAP at least) and QPOPPER behave
differently. In IMAP, the 2nd session will "steal" the lock from the
first one which will fail at the next request. In QPOPPER, the attempt
to open a 2nd session fails.
Cheers,
_Alain_
--
Alain FAUCONNET
Sr. System Administrator
CS Internet Co. Ltd. (Shin Corp) - Thailand