You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It has been observed that the 'createShared' implementation of Vertx is broken - in that the client tends to mix-up (interleave) the SMTP commands - MAIL FROM / RCPT TO / DATA sections (with regard to the RFC) under shared socket scenarios.
Version
Which version(s) did you encounter this bug ?
3.x (Exact version is not known. Likely its 3.9. However, believe this should be reproducible in current versions - that is 4.x variants as well)
In particular it has been observed that a mail intended to be initiated from '[email protected]' to '[email protected]' was instead delivered to '[email protected]' (likely owing to the fact that one thread sent 'MAIL FROM' and 'RCPT TO' where as 'DATA' part was sent from another thread).
Do you have a reproducer?
Not as of now but the issue was clearly visible at around 30 Requests-Per-Second Approx.
Link to github project/gist
Steps to reproduce
Server-End
Set up a mail server in relay configuration to enqueue emails (source, destination, content) but not to deliver.
Client-End
Prepare a test case such that there is a specific set of senders and receivers and the payload that can be reviewed for discrepancies. Create about a hundred of these.
Initiate a load of around 30 RPS using a suitable test harness. A single system as client and a single system as a server should do the trick but more would be better ! Initiate a load for about 15 minutes.
Review the contents in the mail-server logs/queue. There would at least be a handful of discrepancies (where the intended combination of source and destination is different).
Extra
OS - Ubuntu 18 or 20 ?
JVM - JDK 1.8 ?
The text was updated successfully, but these errors were encountered:
Once one SMTP connection is retrieved from the connection pool, it is supposed explicitly to be used for sending one email message. The connection will be either closed or return back to pool for next reuse only after current email transaction completes, even it may switch to another thread for some reason.
I think the problem maybe connection pool implementation in 3.9, somehow, the connection was used by another mail transaction. vertx-mail-client uses new connection pool implementation from 4.1.0+, would you please give it a try ? thanks :)
Questions
Hello,
It has been observed that the 'createShared' implementation of Vertx is broken - in that the client tends to mix-up (interleave) the SMTP commands - MAIL FROM / RCPT TO / DATA sections (with regard to the RFC) under shared socket scenarios.
Version
Which version(s) did you encounter this bug ?
3.x (Exact version is not known. Likely its 3.9. However, believe this should be reproducible in current versions - that is 4.x variants as well)
Need to look at - https://github.com/vert-x3/vertx-mail-client/blob/3.9/src/main/java/io/vertx/ext/mail/MailClient.java
Context
In particular it has been observed that a mail intended to be initiated from '[email protected]' to '[email protected]' was instead delivered to '[email protected]' (likely owing to the fact that one thread sent 'MAIL FROM' and 'RCPT TO' where as 'DATA' part was sent from another thread).
Do you have a reproducer?
Not as of now but the issue was clearly visible at around 30 Requests-Per-Second Approx.
Steps to reproduce
Server-End
Client-End
Extra
The text was updated successfully, but these errors were encountered: