Working with code E020
E020 - Failed to start up analysis service
Note that the E020 output code has been deprecated from release 2023.08.01 but is provided here for reference.
Diffblue Cover is designed to perform most of the hard work of test case production in a separate service process; this allows us to control resource usage and recover from difficult error conditions. For Diffblue Cover to run successfully, it must be able to start up this service and communicate with it successfully. In particular, we assume that we can do the following:
- Start up a Java process using the JDK that compiled the project for which we are supposed to generate tests (the "analysis service");
- Set up a TCP socket listening on a port on localhost, both inside Cover itself and inside the analysis service;
- Connect to the TCP socket of the other process, i.e., Diffblue Cover must be able to connect to the analysis service's TCP port, and the analysis service to that of Diffblue Cover. We do not require any specific ports to be available - any port assigned by the operating system is acceptable.
In general, when you encounter an E020 output code, it is worth checking the following:
- Is your Diffblue Cover installation complete?
- Are the files belonging to Diffblue Cover all readable?
- Is the JVM in
JAVA_HOMEexecutable? Is it a JDK? In particular, check that you can run both
Other possible failure modes that are covered by E020 include:
- Communication between Diffblue Cover and the analysis service may time out. This may happen if your machine is heavily loaded or very slow.
- There may be issues with setting up an SSL connection between Diffblue Cover and the analysis service. This may happen if you have configured SSL for your JVM in a very unusual way.
- The JVM running the analysis service exits for an unexpected reason. In this case, Diffblue Cover will report that the JVM exited with an exit code below 218; check the manual of your JVM for the meaning of this exit code.