mailing list archives

meli community discussions

⚠️ if something does not work as intended when interracting with the mailing lists,
reach out Github mirror Gitea repo @epilys:matrix.org

E-mail headers
From: Lyndon Nerenberg <lyndon@orthanc.ca>
To: imap-protocol@u.washington.edu
Date: Fri, 08 Jun 2018 12:34:44 -0000
Message-ID: alpine.BSF.2.00.1006161833050.38002@legolas.orthanc.ca permalink / raw / eml / mbox
I seem to recall the expressed motivation for MOVE was to work around 
failure of COPY when the target mailbox was at its quota limit. What I 
can't figure out is how this is useful in the real world. Presumably it 
only serves a purpose when the source and destination mailboxes are under 
the same QUOTAROOT. So while MOVE allows messages to be shuffled amongst 
folders under that root, it doesn't allow the introduction of new 
messages.

I'm finding it very difficult to believe that this is such a common 
scenario that it warrants an extension to the protocol. Especially when 
the workaround is as simple as deleting a couple of messages, or bumping 
the quota up a bit. And once you've hit the limit you are going to have to 
do one or both of the above to carry on anyway.

Furthermore, the more I look at this the harder I'm finding it to imagine 
a reasonable server implementation capable of implementing MOVE that could 
not also provide a COPY operation that would not increase the quota usage 
for the QUOTAROOT for a COPY operation within that root. Note that I said 
"reasonable." Anyone can come up with examples of intractable environments 
where it can't be done, but I don't consider someone's insistence on, say, 
implementing their store on a FAT filesystem as justification for a 
protocol workaround for a bad engineering decision.

--lyndon
Reply
E-mail headers
From: mrc+imap@panda.com
To: imap-protocol@localhost
Date: Fri, 08 Jun 2018 12:34:44 -0000
Message-ID: alpine.OSX.2.00.1006161910411.662@hsinghsing.panda.com permalink / raw / eml / mbox
On Wed, 16 Jun 2010, Lyndon Nerenberg wrote:
> I seem to recall the expressed motivation for MOVE was to work around
> failure of COPY when the target mailbox was at its quota limit.

It's not about quotas, or client RTTs; both of those have alternative
solutions.

It's about support for a mail store based on a database designed to do
MOVE quickly but not COPY.

Neither Maildir no Cyrus fall into this category, as they can use
hardlinks to do COPY as fast as MOVE.  This also very nicely fixes the
quota problem, as you can have the same message in multiple mailboxes but
get dinged for only one instance of it against your quota.

The correct solution for all the problems is to fix the deficiencies in
IMAP pipelining.  That fix would remedy a number of other problems as
well.

-- 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.
Reply
E-mail headers
From: snowjn@aol.com
To: imap-protocol@localhost
Date: Fri, 08 Jun 2018 12:34:44 -0000
Message-ID: 4C199D75.8020502@aol.com permalink / raw / eml / mbox
Lyndon Nerenberg wrote:
> I seem to recall the expressed motivation for MOVE was to work around 
> failure of COPY when the target mailbox was at its quota limit. What I 
> can't figure out is how this is useful in the real world. Presumably 
> it only serves a purpose when the source and destination mailboxes are 
> under the same QUOTAROOT. So while MOVE allows messages to be shuffled 
> amongst folders under that root, it doesn't allow the introduction of 
> new messages.
>
The quota issue occurs when a client is determined to use a move to 
trash model instead of the designed flag as deleted in place. When that 
user realizes that his mailbox is full, he try to do the right thing and 
finally delete some old mail.  The client tries to copy the message to a 
trash folder, but the copy fails because the mailbox is full.  Since the 
copy fails, the user is stuck.  This is the reason we added XAOL-MOVE.  
Any RTT or database efficiencies we gained were just a bonus.

The move in this case would allow the client to do what it's trying to 
do and move the message to the trash folder before Emptying the trash.

You're right, no new messages can be deposited until the user deletes 
something.

> I'm finding it very difficult to believe that this is such a common 
> scenario that it warrants an extension to the protocol. Especially 
> when the workaround is as simple as deleting a couple of messages, or 
> bumping the quota up a bit. And once you've hit the limit you are 
> going to have to do one or both of the above to carry on anyway.
That's true as long as the client deletes the message in place.  You 
could bump the quota, but since there's no standard "Trash" folder, how 
would the server know that the folder that the client is copying to is 
the "Trash" folder and to ignore the quota for that copy.  Sure you 
could work around this issue with a pipelined copy/store/delete provided 
you could stop between commands when something goes wrong, but why 
process 3 commands when 1 command will do?
>
> Furthermore, the more I look at this the harder I'm finding it to 
> imagine a reasonable server implementation capable of implementing 
> MOVE that could not also provide a COPY operation that would not 
> increase the quota usage for the QUOTAROOT for a COPY operation within 
> that root. Note that I said "reasonable." Anyone can come up with 
> examples of intractable environments where it can't be done, but I 
> don't consider someone's insistence on, say, implementing their store 
> on a FAT filesystem as justification for a protocol workaround for a 
> bad engineering decision.
>
That depends on the product rules of the mail system.  Just because you 
could make multiple references to one copy doesn't mean that it's 
accounted for that way.
> --lyndon
>
> _______________________________________________
> Imap-protocol mailing list
> Imap-protocol@u.washington.edu
> http://mailman2.u.washington.edu/mailman/listinfo/imap-protocol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman13.u.washington.edu/pipermail/imap-protocol/attachments/20100616/0b0e5ff4/attachment.html>
Reply
E-mail headers
From: snowjn@aol.com
To: imap-protocol@localhost
Date: Fri, 08 Jun 2018 12:34:44 -0000
Message-ID: 4C19924B.6090705@aol.com permalink / raw / eml / mbox
Mark Crispin wrote:
> On Wed, 16 Jun 2010, Lyndon Nerenberg wrote:
>> I seem to recall the expressed motivation for MOVE was to work around
>> failure of COPY when the target mailbox was at its quota limit.
>
> It's not about quotas, or client RTTs; both of those have alternative
> solutions.
>
> It's about support for a mail store based on a database designed to do
> MOVE quickly but not COPY.
>
> Neither Maildir no Cyrus fall into this category, as they can use
> hardlinks to do COPY as fast as MOVE.  This also very nicely fixes the
> quota problem, as you can have the same message in multiple mailboxes but
> get dinged for only one instance of it against your quota.
>
> The correct solution for all the problems is to fix the deficiencies in
> IMAP pipelining.  That fix would remedy a number of other problems as
> well.
Are there any clients that pipeline commands?
>
> -- 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-protocol mailing list
> Imap-protocol@u.washington.edu
> http://mailman2.u.washington.edu/mailman/listinfo/imap-protocol
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman13.u.washington.edu/pipermail/imap-protocol/attachments/20100616/dc06df3b/attachment.html>
Reply
E-mail headers
From: arnt@gulbrandsen.priv.no
To: imap-protocol@localhost
Date: Fri, 08 Jun 2018 12:34:44 -0000
Message-ID: 4C19CC6A.8000701@gulbrandsen.priv.no permalink / raw / eml / mbox
On 06/17/2010 05:11 AM, John Snow wrote:
> Are there any clients that pipeline commands?

Many.

Few (or none?) do it to the extent IMAP allows, but many do it a little. 
Typical examples include sending several UID STOREs at the same time, or 
sending UID FETCH 1;* FLAGS without waiting for SELECT FOO to complete.

Arnt
Reply
E-mail headers
From: stujenerin@aol.com
To: imap-protocol@localhost
Date: Fri, 08 Jun 2018 12:34:44 -0000
Message-ID: 4C1A377B.8070300@aol.com permalink / raw / eml / mbox
Pipelining UID FETCH 1:* <anything> with SELECT FOO seems like an unwise 
implementation choice for reasons covered by RFC2683 section 3.2.1.2

Arnt Gulbrandsen wrote:
> Few (or none?) do it to the extent IMAP allows, but many do it a 
> little. Typical examples include sending several UID STOREs at the 
> same time, or sending UID FETCH 1;* FLAGS without waiting for SELECT 
> FOO to complete.
>
Reply