Canton 2.9.3
This is a maintenance release of Canton that fixes one high risk bug, which can crash a participant node due to out of memory, and two low risk bugs.
- A newer release in the 2.9 line: Canton 2.9.7
- Newest Canton: Canton 3.6.4
Canton 2.9.3 has been released on July 22, 2024. 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 of Canton that fixes one high risk bug, which can crash a participant node due to out of memory, and two low risk bugs.
Bugfixes
(24-017, High): Participants crash with an OutOfMemoryError
Description
The TaskScheduler keeps a huge number of tasks into a queue. The queue has been newly introduced. Therefore the memory comsumption (HEAP) is much higher than in previous versions. The queue size is proportional to the number of requests processed during the decision time.
Affected Deployments
Participant
Impact
Memory consumption is much higher than in previous Canton versions.
Symptom
The participant crashes with an OutOfMemoryError.
Workaround
Test the participant under load, increase the heap size accordingly. If possible, decrease confirmation response timeout and mediator reaction timeout.
Likeliness
High likelihood under high load and with large confirmation response and mediator reaction timeouts.
Recommendation
Upgrade to 2.9.3.
(24-018, Low): Participants log "ERROR: The check for missing ticks has failed unexpectedly"
Description
The TaskScheduler monitoring crashes and logs an Error.
Affected Deployments
Participant
Impact
The monitoring of the task scheduler crashes.
Symptom
You see an error in the logs: ERROR: The check for missing ticks has failed unexpectedly..
Workaround
If you need the monitoring to trouble-shoot missing ticks, restart the participant to restart the monitoring.
Likeliness
This will eventually occur on every system.
Recommendation
Ignore the message until upgrading to 2.9.3.
(24-015, Low): Pointwise flat transaction Ledger API queries can unexpectedly return TRANSACTION_NOT_FOUND
Description
When a party submits a command that has no events for contracts whose stakeholders are amongst the submitters, the resulted transaction cannot be queried by pointwise flat transaction Ledger API queries. This impacts GetTransactionById, GetTransactionByEventId and SubmitAndWaitForTransaction gRPC endpoints.
Affected Deployments
Participant
Impact
User might perceive that a command was not successful even if it was.
Symptom
TRANSACTION_NOT_FOUND is returned on a query that is expected to succeed.
Workaround
Query instead the transaction tree by transaction-id to get the transaction details.
Likeliness
Lower likelihood as commands usually have events whose contracts' stakeholders are amongst the submitting parties.
Recommendation
Users are advised to upgrade to the next patch release during their maintenance window.
Compatibility
The following Canton protocol and Ethereum sequencer contract versions are supported:
| Dependency | Version |
|---|---|
| Canton protocol versions | 5, 6* |
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.19 (Debian 12.19-1.pgdg120+1) – Also tested: PostgreSQL 11.16 (Debian 11.16-1.pgdg90+1), PostgreSQL 13.15 (Debian 13.15-1.pgdg120+1), PostgreSQL 14.12 (Debian 14.12-1.pgdg120+1), PostgreSQL 15.7 (Debian 15.7-1.pgdg120+1) |
| Oracle | 19.20.0 |