Sure! I don't entirely understand the scope of the problem, though.

Is this something that we can do elegantly in the current code, or do we just
need to hack it a little bit in a few places? For a more thorough solution,
what about an exception framework, with wrappers around fgets and fprintf that
raise exceptions if something goes wrong. Take a look at this:

http://ldeniau.home.cern.ch/ldeniau/html/exception/exception.html

I have already emailed the author to find out what his licensing terms are;
nothing is mentioned on that page or in the code.

Aaron


Paul J Stevens <[EMAIL PROTECTED]> said:

> Ive been doing some more testing and debugging on this problem. I think
> the problem is in imap4.c
> 
> Client issues a close.
> Server continues reading and writing on closed streams.
> Client responds with RST packets.
> Server barfs on EPIPE.
> 
> There is no check in the code before each read/write on whether the 
> stream is still open.  I would guess that all read/write actions on the 
> streams should check their state.
> 
> Perhaps the fgets and fprintf call should be moved to wrapper calls that 
>   do proper error handling. Any takers ?
> 
> 
> Paul J Stevens wrote:
> > I've done some more testing. It's real simple to trigger this bug: 
> > simply telnet on port 143 and quit without doing anything.
> > 
> > Even though the client sends a FIN,ACK to the server, the server still 
> > responds with * BAD No tag specified. It should respond by closing the 
> > streams instead.
> > 
> > Doesn't solve the problems with mozilla though :-(
> > 
> > Aaron Stone wrote:
> > 
> >> What's an active close?
> >>
> >> Going off on a tangent, I started reading over severchild.c to see what I
> >> could see, and I noticed this big FIXME towards the end of 
> >> PerformChildTask()
> >>
> >>   db_disconnect();
> >>   auth_disconnect();
> >>   connected = 0;   /* FIXME a signal between this line and the 
> >> previous one
> >>                     * would screw things up. Would like to have all 
> >> this in
> >>                     * db_disconnect() making 'connected' obsolete
> >>                     */
> >>
> >> To prevent the signal problem, create a noop function and set it as the
> >> universal signal handler right before the disconnection code. Any signals
> >> coming in during the "critical shutdown zone" would basically be ignored.
> >>
> >> Right, and now back to our regularly scheduled bug hunt ;-)
> >>
> >> Aaron
> >>
> >>
> >> Paul J Stevens <[EMAIL PROTECTED]> said:
> >>
> >>
> >>> As promised: I've zoomed in on a tcp session that goes haywire.
> >>>
> >>> I've attached such a session in a pcap file: see attachment.
> >>>
> >>> Looks like mozilla initiates an active close after receiving a 'OK 
> >>> STATUS completed' but dbmail failes to properly close the session, 
> >>> leading to the client sending RST packets that trigger the broken 
> >>> pipe problem.
> >>>
> >>> I guess serverchild.c needs some serious refactoring... :-)
> >>>
> >>>
> >>> Paul J Stevens wrote:
> >>>
> >>>> I don't really think its the acl stuff that's causing this. 1.2.3 
> >>>> has similar problems with mozilla type clients, it just got much 
> >>>> worse on 2.x.
> >>>>
> >>>> I'll investigate and see what I can come up with.
> >>>>
> >>>>
> >>>> Aaron Stone wrote:
> >>>>
> >>>>
> >>>>> I see this with Mozilla 1.6, too. In fact, it was driving me nuts 
> >>>>> when I was
> >>>>> testing my latest patch because I thought I had ruined the delivery 
> >>>>> chain...
> >>>>> only to try KMail instead and discover that things really were 
> >>>>> working ;-)
> >>>>>
> >>>>> Someone should sit down with a tcpdump or ethereal-type protocol 
> >>>>> analyzer and
> >>>>> try getting to the bottom of this! KMail does not support the 
> >>>>> Namespace
> >>>>> extension, and might not support ACL either. So something about one 
> >>>>> or both
> >>>>> must be a little bit buggered, either by us or Mozilla; only a true 
> >>>>> patch will
> >>>>> tell :-)
> >>>>>
> >>>>> Aaron
> >>>>>
> >>>>>
> >>>>> ""Blake Mitchell"" <[EMAIL PROTECTED]> said:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> This sounds very similar to the problems I am having with
> >>>>>> Mozilla/Thunderbird and 2.0rc2. Only access to the INBOX, doesn't 
> >>>>>> check for
> >>>>>> mail when I tell it to, etc. So far my only solution has been to 
> >>>>>> use Outlook
> >>>>>> :-/
> >>>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: [EMAIL PROTECTED] 
> >>>>>> [mailto:[EMAIL PROTECTED] On
> >>>>>> Behalf Of Paul J Stevens
> >>>>>> Sent: Tuesday, February 24, 2004 8:18 AM
> >>>>>> To: dbmail-dev@dbmail.org
> >>>>>> Subject: Re: [Dbmail-dev] unable to read mail on 2.x
> >>>>>>
> >>>>>> I'm guessing it's a client related issue.
> >>>>>>
> >>>>>> This occurs when I access dbmail-2 from a thunderbird-0.5 client 
> >>>>>> that has several accounts with many folders configured.
> >>>>>>
> >>>>>> I've also moved my dbmail-2 imap server around to a UML instance 
> >>>>>> on the same machine as my dbmail-1 server, and also to a totally 
> >>>>>> different machine in the same network.
> >>>>>>
> >>>>>> In all cases: thunderbird triggers the closed pipe error, whereas 
> >>>>>> squirrelmail and ilohamail work just fine.
> >>>>>>
> >>>>>> I've finally tested this with mozilla-1.6 with only one account: 
> >>>>>> same problem. One additional thing I noticed though: on first 
> >>>>>> accessing a new account, mozilla and thunderbird hang while 
> >>>>>> 'Getting folder ACL'.
> >>>>>>
> >>>>>> Closing and restarting the client gives me access to the INBOX, 
> >>>>>> but no other folders. weird...
> >>>>>>
> >>>>>> I've tested with balsa and with sylpheed. Oops. Same broken-pipe. 
> >>>>>> No problems reading email though.
> >>>>>>
> >>>>>> ...
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> Dbmail-dev mailing list
> >>>>>> Dbmail-dev@dbmail.org
> >>>>>> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>> -- 
> >>>   ________________________________________________________________
> >>>   Paul Stevens                                         [EMAIL PROTECTED]
> >>>   NET FACILITIES GROUP                     GPG/PGP: 1024D/11F8CD31
> >>>   The Netherlands_______________________________________www.nfg.nl
> >>> _______________________________________________
> >>> Dbmail-dev mailing list
> >>> Dbmail-dev@dbmail.org
> >>> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> >>>
> >>
> >>
> >>
> >>
> > 
> 
> -- 
>    ________________________________________________________________
>    Paul Stevens                                         [EMAIL PROTECTED]
>    NET FACILITIES GROUP                     GPG/PGP: 1024D/11F8CD31
>    The Netherlands_______________________________________www.nfg.nl
> _______________________________________________
> Dbmail-dev mailing list
> Dbmail-dev@dbmail.org
> http://twister.fastxs.net/mailman/listinfo/dbmail-dev
> 



-- 



Reply via email to