CORRECT PATCH Re: sync_client bails when encountering a deleted message

John Capo jc at irbs.com
Fri Aug 10 13:46:24 EDT 2007


Quoting David Carter (dpc22 at cam.ac.uk):
> On Sun, 5 Aug 2007, John Capo wrote:
> 
> >My simple test is adding a sleep(10) in upload_message_work() and 
> >logging that we are sleeping.  I cause a new message to be appended to 
> >the Sent folder.  When I see the sleeping log entry I delete the message 
> >that was just appended.
> 
> I have just tried the same thing on the current Cyrus CVS, and the APPEND 
> to MAILBOX promotion seems to work correctly. sync_client -v -v output:
> 
>   APPEND user.dpc22
>     Promoting: APPEND user.dpc22 -> MAILBOX user.dpc22
>   MAILBOXES user.dpc22
>   SEEN dpc22 user.dpc22
>   MAILBOXES user.dpc22
> 
> syslog output on client system:
> 
>   Aug 10 15:29:09 magenta lmtp[1957]: Delivered:
>     <cmu-lmtpd-1957-1186756147-0 at magenta> to mailbox: user.dpc22
> 
> ...Message delivered
> 
>   Aug 10 15:29:14 magenta imap[1955]:
>     Expunged 1 messages from user.dpc22
> 
> ...and expunged while sync_client is sitting in sleep()
> 
>   Aug 10 15:29:39 magenta sync_client[1933]:
>     IOERROR: opening message file 510 of user.dpc22:
>     No such file or directory
> 
> ...sync_client about to bail out half way through the UPLOAD
> 
>   Aug 10 15:29:39 magenta sync_client[1933]:
>     UPLOAD received BAD response:
>     Syntax error in Append at item 1: Invalid flags or missing message
> 
> ...and sync_client reporting the syntax error thown by the server.
> 
> cmd_upload is sending a "BAD" response here rather than the "NO" response 
> which your later patch proposes. However sync_client is going to ignore
> the response code anyway, as it already knows that there is an problem:
> 
>     if (r) {
> >>>>>  sync_parse_code("UPLOAD", fromserver, SYNC_PARSE_EAT_OKLINE, NULL);
>         return(r);
>     }
> 
> The noise from your log entry:
> 
> >sync_client[4093]: SELECT received  response:
> >sync_client[4093]: CREATE received ** response: 7dcec8343f7f0817 
> >user.xx_xxxx^com.Sent "xx_xxxx.com  lrswipkxtecda   xxxx    lrswipkxtea 
> >" 279 87 1
> 
> suggests that you have a missing eatline() somewhere.

I thought he same but diffs don't show it.  Oh well, what I have
with Ken's commit and promoting to MAILBOX is working well.  When
I merge my mods with 2.3.9 or 2.3.10 maybe I can find what I missed
in implemnting your fix.






More information about the Cyrus-devel mailing list