chibenwa opened a new pull request, #2090: URL: https://github.com/apache/james-project/pull/2090
That is my best shot at explaining: ``` java.lang.NullPointerException: Cannot invoke "org.apache.james.imap.api.process.SelectedMailbox.existsCount()" because "selected" is null ``` CF https://github.com/linagora/james-project/issues/4688 which was mostly fixed incorrectly... The Netty stack enforce linearisability of operation conducted on the event loop for a single channel, including command decoding. For command execution, we trigger the processing only reactor. We rely on a linarizer to enforce sequential IMAP execution. So in theory we do never execute two IMAP commands of a given connection at the same time. However no mechanism prevents decoding at the same time than command execution - and that is fine - however the channel operations (inactive, idle, parsing failures) MAY interfere with command execution by deciding a logout eventually deselecting the current mailbox and resulting in the NPE. Lessons learned: always cancel current command execution before deciding to log out! That, and we were executing blocking code onto the netty event loop which IS BAD. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
