canton v2.6.5
Release of Canton 2.6.5
Canton 2.6.5 has been released on June 19, 2023. You can download the Daml Open Source edition from the Daml Connect Github Release Section. The Enterprise edition is available on Artifactory.
Please also consult the full documentation of this release.
Summary
This is a maintenance release addressing issues in the Canton participant.
What’s New
Bugfixes
Crash recovery bug in request counter allocator for repair requests
Description
: When using the repair service of a participant, the participant may fail to reconnect to the domains affected by the repairs.
Affected deployments
: All deployments
Affected versions
: All currently released enterprise versions of Canton.
Impact
: The participant cannot connect to the affected domain any more.
Symptom
: The participant log file contains an ERROR message of the form
An internal error has occurred. java.lang.IllegalArgumentException: Cannot skip request counter ... other than the next request counter ...
Workaround
: Upgrading to a Canton version with the released bug fix should resolve the problem.
Likelihood of the bug
: The bug can occur only if the repair service is used on a participant.
The repair service is internally used by the party migration console macros, for example.
Recommendation
: Upgrade the participant to a Canton version with the bug fix and restart the node.
Crash recovery bug in ACS commitment processing
Description
: A participant may fail to reconnect to a domain and the reconnect attempt seems stuck.
Affected deployments
: All deployments
Affected versions
: All currently released enterprise versions of Canton.
Impact
: The participant cannot connect to a domain any more.
Symptom
: No error is logged in the participants log file, but the reconnect command will appear to be stuck.
Workaround
: Upgrading to a Canton version with the released bug fix should resolve the problem.
Likelihood of the bug
: The bug occurs only for a particular order of events that are processed during the reconnect of a participant to a domain.
Not all participant nodes may be affected for the same domain.
Recommendation
: Upgrade the participant to a Canton version with the bug fix and restart the node.
Other Bugfixes
- We fixed a race condition during initialization of a participant node that could result in it failing to transition to an active state.
- Fixed missing support for domain nodes for http health check monitoring
- We fixed a regression introduced in 2.6.4 where under very high load, in rare circumstances, a participant would block in-definitively when trying to disconnect from a sync domain or shutdown a participant.
In this case, a message similar to "WARN: Closing 'SyncDomain(...)' failed" will appear. The scenario can be recovered by killing and restarting the process. - We fixed a resource consumption issue within the participant: The Daml engine will cache packages
once they are loaded. However, any concurrent interpretation will keep on requesting the package
from the database, leading to the situation where the same package is loaded many times.
Problem can be compounded if the participant starts with a large load immediately after restart.
Eventually, this can lead to out of memory issues due to the temporary memory consumption spike in systems without generously
provisioned resources. A temporary work-around is to trigger preloading of the package cache before
reconnecting to a domain by submitting acreatecommand (ideally an invalid one to avoid writing)
to the ledger by accident.
Compatibility
The following Canton protocol and Ethereum sequencer contract versions are supported:
| Dependency | Version |
|---|---|
| Canton protocol versions | 3, 4 |
| Ethereum contract versions | ETHEREUM_CONTRACT_VERSIONS |
Canton has been tested against the following versions of its dependencies:
| Dependency | Version |
|---|---|
| Java Runtime | OpenJDK 64-Bit Server VM Zulu11.62+17-CA (build 11.0.18+10-LTS, mixed mode) |
| Postgres | postgres (PostgreSQL) 14.8 (Debian 14.8-1.pgdg120+1) |
| Oracle | 19.15.0 |
| Besu | besu/v22.1.3/linux-x86_64/openjdk-java-11 |
| Fabric | 2.2.2 |