[ 
https://issues.apache.org/jira/browse/JAMES-3709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17482398#comment-17482398
 ] 

Benoit Tellier commented on JAMES-3709:
---------------------------------------

Thanks!

With the log (actually the line just before) it looks like some concurrent 
deletions happened, maybe a POP3 clients reconnected during your performance 
test while the deletes of the previous sessions were still in progress thus 
causing the ` Removing f4f8fd70-7d10-11ec-8d11-6ffd320e78cd from 
f4f3f460-7d10-11ec-8d11-6ffd320e78cd POP3 projection for user user@domain at it 
is not backed by a MailboxMessage` log. So I tried to delete messages in the 
middle of a POP3 session and ... reproduced!

See https://github.com/apache/james-project/pull/868

On the aftermath:

 - We should handle missing messages as an expected prime citizen case (cause 
we don't have POP3 transactionality so we need to handle concurrency)
 - We should return the ERR error code back to the client (we do)
 - We should avoid throwing scary logs on such a benign case (we don't)
 - Worst: we should not kill the connection because of that benign error

We likely need to revisit error management there...

Karsten, would you take a look at this?

> Missing null check in POP3 TopCmdHandler
> ----------------------------------------
>
>                 Key: JAMES-3709
>                 URL: https://issues.apache.org/jira/browse/JAMES-3709
>             Project: James Server
>          Issue Type: Bug
>          Components: protocols
>    Affects Versions: master
>            Reporter: Karsten Otto
>            Priority: Major
>         Attachments: error.txt
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> TopCmdHandler is missing a null check when retrieving the message content, 
> i.e. the InputStream can be null, which results in an NPE down the line. 
> Admittedly this is a rare case, I only observed this during heavy load 
> testing.
> On closer inspection it turns out that TopCmdHandler duplicates a major 
> portion of code from RetrCmdHandler, but with subtle differences such as the 
> null check mentioned above.
> I propose to refactor the two classes to make them share the code, and 
> provide unit tests for all possible error/success cases.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

---------------------------------------------------------------------
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