Hello Jean,

On 08/09/2021 20:58, Jean Helou wrote:
> Hello devs,
>
> I switch threads because I agree with the removal of the FS based mailqueue
> but still find the maildir removal to be a bit more difficult.
>
> Quoting from the other thread at
> https://www.mail-archive.com/server-dev@james.apache.org/msg70960.html
>
> What protocols are supported by the 2.3 release line? As far as I am
>> aware of, it mostly is POP3, and - again to my own experience - POP3
>> user do not tend to have a large mailbox (as POP3 causes it to be read
>> again and again and over again), I doubt that we are speaking of the
>> same volumetry than for instance an IMAP server migration.
>>
> Undoubtedly I don't know james code as well as you do but while gary
> mentioned a 2.3 migration, it doesn't really matter ...
> The maildir implementation currently exists in james 3.x[1], it is listed
> as an official mailbox implementation and not marked deprecated [2]
> Therefore it would be legitimate for users to use it with James 3 and
> dropping it from 3.7 without a deprecation period sounds a bit cavalier to
> me.
I agree on the 'cavalier' aspect of my initial proposal (whose purposes
was to try to move lines on that topic).

I would agree on marking it deprecated in 3.7.0 and remove
mailbox/maildir in the 3.8.0 release line.
>
> Also maildir is a fairly standard mailbox format, support for it allows for
> migration from other software to james
1. It is not because it is standard that we have to implement it.
2. We could imagine having a "Import from maildir" tool instead of a
full-fledged mailbox implementation, this would lower greatly
maintenance costs.
3. I have not seen any tests regarding maildir inter-operability. I have
serious doubts when I see critical files having a james- prefix
(james-acl, james-uidvalidity, james-uidlist)
4. If it was truly useful, maybe we would have some contributions on
this component?
5. As stated, I provide an alternative way to perform such a migration
using imapsync.
>
> Now you state:
>
>> With such a high number of critical issues that no one dare fixing
>>
> I may be mistaken as I didn't investigate in details but it sounds like
> most of the issues stem from a lack of sanitizing in FS paths. 
No it's not. Maildir suffer from many other flows. For instance you
cannot rename mailboxes which is nonetheless a basic IMAP feature.
> You mention
> in JAMES-3646[3] that you are going to fix the sieve and FileRepositories.
> Considering the practices in the james codebase most of the sanitizing code
> is going to end up in a shared service.

Maildir accesses files directly without ending up using any "common
service". We would have to design a fix just for it.

As such, we could say "maildir has issues that no-ones dare to fix so we
deprecate and soon remove it".

>  Once that's in place it would be
> easier to fix a few of the maildir bugs using this code and it could become
> a nice first contrib no ?
>
> On a side note MAILBOX-183[4] "readUidFile is taking too much time for
> large uid file and blocks other threads" is open but marked as a duplicate
> of a closed bug ... not sure if it is still applicable.
>
> Jean
>
> [1] https://github.com/apache/james-project/tree/master/mailbox/maildir
> [2] https://github.com/apache/james-project/blob/master/mailbox/README.md
> [3] https://issues.apache.org/jira/browse/JAMES-3646
> [4] https://issues.apache.org/jira/browse/MAILBOX-183
>
> On Mon, Sep 6, 2021 at 5:47 AM Rene Cordier <rcord...@apache.org> wrote:
>
>> Hello,
>>
>> I think you are making good points. It's probably better to focus on
>> what works well if it's enough of an alternative to maildir (like
>> embedded JPA as you mentionned), with little resources we have.
>>
>> +1 !
>>
>> Rene.
>>
>> On 05/09/2021 19:58, btell...@apache.org wrote:
>>> Hello all,
>>>
>>> While reviewing overall file path sanitizing (JAMES-3646) I found
>>> maildir to incorrectly sanitize some file path.
>>>
>>> Playing around, I discovered some magic names that leads to maildir
>>> errors namely MAILBOX-406, and a NPE with an empty mailbox (MAILBOX-407).
>>>
>>> Moreover, over time the list of maildir defects keeps on growing:
>>>
>>>   - MAILBOX-389 Mailbox rename fails with Maildir
>>>   - MAILBOX-393 mailboxId support for mailDir is partial
>>>
>>> Now looking on the bug tracker I notice people encounter (and nobody
>>> answers):
>>>
>>>   - MAILBOX-390 Unexpected error accessing mailbox
>>>   - MAILBOX-344 Maildir do not support MODSEQ search
>>>   - MAILBOX-299 Maildir should fail gracefully when mailbox name is too
>> long
>>>   - MAILBOX-241 Maildir implementation does not check namespace on
>> existance
>>>   - MAILBOX-183 readUidFile is taking too much time for large uid file
>>> and blocks other threads
>>>   - JAMES-3612 Cryptic errors upon bad permissions
>>>   - JAMES-1515 Maildirstorage backend crashes with Exception due to
>>> "wrong" filename
>>>
>>> With such a high number of critical issues that no one dare fixing, it
>>> sounds reasonable to me to state that maildir implementation do not
>>> match quality standards that one would expect from an Apache project.
>>>
>>> Other mail servers do have great maildir implenentation, which
>>> mistakenly lead users to think the maildir implementation is a quality
>>> one, which is very far from the truth.
>>>
>>> Moreover, maildir code is outdated,  hard to work with, and pulls us
>>> back in many way. Given the currently small amount of contributors, we
>>> do not have time and resources to give it the love it deserves.
>>>
>>> Also, alternatives exist: embedded JPA database do also run well in
>>> single instance mode, and could server as a maildir replacement. People
>>> could use utilities like imapsync to plan their migration.
>>>
>>> As such, I propose myself to retire maildir and remove related code from
>>> the repository.
>>>
>>> Regards,
>>>
>>> Benoit
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>
>>

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to