Summary
This is a maintenance release that addresses several issues.
What’s New
Fixed handling of expired gRPC deadlines on the CommandService: If the gRPC request deadline is too low, requests can lead to errors (logged on the participant as INTERNAL) in the CommandService endpoints (e.g. submitAndWait) and never appear as completed for the client. The workaround is to restart the participant and use a higher gRPC request deadline.
A race condition was eliminated. When a PN is being shutdown, the Ledger API can experience a race condition on the CommandService and log internal errors such as IllegalStateException("Promise already completed.")
Reduced memory consumption due to instrumentation that could negatively impact performance.
Default trace sampling ratio was reduced to 1% (from 100%) to avoid performance penalties under high throughput scenarios.
Installation or Download
The Daml 2.7.4 SDK has been released. You can install it using the command: daml install 2.7.4.
The table below lists how you can download Daml Enterprise or individual components.
If you are using Oracle JVM and testing security provider signatures, you should note that the provided Canton JAR file embeds the BouncyCastle Provider as a dependency. To enable the JVM to verify the signature, you need to put the “bcprov” JAR on the classpath before the Canton Standalone JAR. For example:
java -cp bcprov-jdk15on-1.70.jar:canton-with-drivers-2.7.4-all.jar com.digitalasset.canton.CantonEnterpriseApp
Note: These Docker images are designed to be minimal in size and attack surface, and are thus suitable for production use. Minimal images can sometimes make debugging difficult (e.g. no shell in the containers). For convenience, we provide “debug” versions of each of the above images, which you can access by appending “-debug” to the image tag (e.g. digitalasset-docker.jfrog.io/http-json:2.7.4-debug).