Canton 2.9.7
This is a maintenance release that fixes one medium severity issue which prevents migration of contracts with keys via ACS export / import. Please update if affected.
- The latest release in the 2.9 line.
- Newest Canton: Canton 3.6.4
Canton 2.9.7 has been released on April 14, 2025. 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 that fixes one medium severity issue which prevents migration of contracts with keys via ACS export / import. Please update if affected.
Bugfixes
(25-004, Medium): RepairService contract import discards re-computed contract keys in the repaired contract
Issue Description
The repair service re-computes contract metadata when adding new contracts. However, instead of repairing the contract with the re-computed keys, it re-uses the keys from the input contract. Combined with a gap in the console macros which do not propagate contract keys during ACS export, migrating contracts with keys in that way can result in an inconsistency between the ACS and contract key store, which crashes the participant when attempting to fetch a contract by key.
Affected Deployments
Participant nodes.
Affected Versions
- 2.10.0
- 2.9.0-2.9.6
- 2.8.x
Impact
Contracts with keys cannot be used after migration via ACS export / import.
Symptom
The participant crashes with "java.lang.IllegalStateException: Unknown keys are to be reassigned. Either the persisted ledger state corrupted or this is a malformed transaction" when attempting to lookup a contract by key that has been migrated via ACS export / import
Workaround
No workaround available. Update to 2.9.7 if affected.
Likeliness
Deterministic if migrating contracts with keys using ACS export to an unpatched version.
Recommendation
Upgrade to 2.9.7 if affected by this issue.
Compatibility
The following Canton protocol versions are supported:
| Dependency | Version |
|---|---|
| Canton protocol versions | 5 |
Canton has been tested against the following versions of its dependencies:
| Dependency | Version |
|---|---|
| Java Runtime | OpenJDK 64-Bit Server VM Zulu11.72+19-CA (build 11.0.23+9-LTS, mixed mode) |
| Postgres | Recommended: PostgreSQL 12.22 (Debian 12.22-1.pgdg120+1) – Also tested: PostgreSQL 11.16 (Debian 11.16-1.pgdg90+1), PostgreSQL 13.20 (Debian 13.20-1.pgdg120+1), PostgreSQL 14.17 (Debian 14.17-1.pgdg120+1), PostgreSQL 15.12 (Debian 15.12-1.pgdg120+1) |
| Oracle | 19.20.0 |