Hi everyone,

I am a senior software engineer working on a TomEE project and as part of our 
recent upgrade to Jakarta 10 and Java 17, we also upgraded the Apache Commons 
email library to version 2 which you just released.

We encountered a very critical bug which only occurs with certain hardware and 
drivers, but it has very serious impacts on the host OS and would be 
catastrophic if it were to happen on production systems.  I suggest you look 
into this as a matter of urgency because I would not want anyone else to 
encounter this bug as it is very bad, but also very obscure and could easily be 
missed during testing.


PROBLEM DESCRIPTION:
On certain physical hardware, with a specific OS network driver installed, if 
the Apache commons email2 library is used and an email is sent, the email fails 
to send, and the OS network driver crashes and the computer loses all network 
access.  The network access can only be restored by restarting the computer, 
sometimes multiple times.


HARDWARE & OS:
Computer: Optiplex 7000
Windows 11
Ethernet driver: Intel 12.19.2.45

SOFTWARE:
Java 17
Jakarta 10
TomEE 9.1.2

These dependencies caused the issue:
commons-mail = { module = "org.apache.commons:commons-email2-jakarta", version 
= "2.0.0-M1" }
commons-mail-core = { module = "org.apache.commons:commons-email2-core", 
version = "2.0.0-M1" }

We tried both the snapshot version from a few months ago, and the final release 
version from a few weeks ago.
Snapshot repo: https://repository.apache.org/content/repositories/snapshots/
Release repo: 
https://mvnrepository.com/artifact/org.apache.commons/commons-email2-jakarta/2.0.0-M1

In the Java code:
import org.apache.commons.mail2.core.EmailException;
import org.apache.commons.mail2.jakarta.HtmlEmail;


STEPS TO REPRODUCE:

  1.  Make sure you are testing on a computer with the same physical 
hardware/network card
  2.  Install the exact same version of the Intel ethernet driver. This issue 
does not occur for older/newer versions of the Intel driver
  3.  Run TomEE9 with the apache-commons-email2 library in the libs folder of a 
WAR deployment.
  4.  Send an email.
  5.  The email will never get sent across the network.
  6.  The computer will lose all network access.
  7.  Network access will only be restored after restarting the computer.

DEBUG NOTES:

While debugging the Java stack trace, we found that if the commons-email2 
libraries are used, somehow one of the Java classes in geronimo-mail is called 
which is part of the TomEE/libs and this crashes the computer network. So it 
might be an issue with commons-email2 communicating with certain 3rd-party 
libraries in combination with certain hardware/drivers.


STEPS TO FIX:

If we add an excludes for the Geronimo library, and swap apache-commons-email 
with a different email implementation library, it seems fine.



Please also note if I update my network driver to the latest Intel version, 
2.0.0-M1 doesn't crash my network. It also doesn't crash with older driver 
versions, only version 12.19.2.45.  This is not an issue for Linux systems.

Please let me know if you need any more information about how to reproduce the 
issue.

Regards,
Adrian

Reply via email to