Canton 2.8.1
This is a maintenance release of Canton including reliability fixes and user experience improvements. Users of the Fabric driver are encouraged to upgrade at their disposal.
- A newer release in the 2.8 line: Canton 2.8.12
- Newest Canton: Canton 3.6.4
Canton 2.8.1 has been released on January 31, 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 including reliability fixes and user experience improvements. Users of the Fabric driver are encouraged to upgrade at their disposal.
What’s New
Minor Improvements
Improved reference configuration example
We have reworked the reference configuration example. The examples/03_advanced_configuration example has been replaced
by a set of reference configuration files which can be found in the config directory. While the previous example
contained pieces which could be assembled into a full configuration, the new examples now contain the full configuration
which can be simplified by removing parts which are not needed.
The installation guide <https://docs.daml.com/canton/usermanual/installation.html>_ has been updated accordingly.
Improved Party Replication Macros
The enterprise version now supports replicating a party from one participant node to another for either migration or
to have multiple participants hosting the same party. Please consult the documentation <https://docs.daml.com/2.9.0/canton/usermanual/identity_management.html#replicate-party-to-another-participant-node>_
on how to use this feature.
Reduced Background Journal Cleaning Load
We have improved the background journal cleaning to produce less load on the database by using smaller transactions to clean up the journal.
Executor Service Metrics removed
The metrics for the execution services have been removed:
- daml.executor.runtime.completed*
- daml.executor.runtime.duration*
- daml.executor.runtime.idle*
- daml.executor.runtime.running*
- daml.executor.runtime.submitted*
- daml_executor_pool_size
- daml_executor_pool_core
- daml_executor_pool_max
- daml_executor_pool_largest
- daml_executor_threads_active
- daml_executor_threads_running
- daml_executor_tasks_queued
- daml_executor_tasks_executing_queued
- daml_executor_tasks_stolen
- daml_executor_tasks_submitted
- daml_executor_tasks_completed
- daml_executor_tasks_queue_remaining
Bugfixes
(24-001, Major): Fabric Block Sequencer may deadlock when catching up
Issue Description
Fabric Ledger block processing runs into an unintended shutdown and fails to process blocks when the in-memory blocks exceeds 5000. This is caused when catching up after downtime and the Fabric Ledger size has increased substantially in the meantime.
Affected Deployments
Fabric Sequencer Node
Affected Versions
2.3 - 2.7 and 2.8.0
Impact
The sequencer stops feeding new blocks.
Symptom
Participant gets stuck in an old state and does not visibly catch up against a Fabric Ledger.
Therefore, a domains.reconnect call on the participant may appear as if it is hanging.
On the sequencer node, each processed message is logged using Observed Send with messageId including a
timestamp. Once the emission of these log lines stops, the sequencer is stuck.
Workaround
Restart the sequencer node if it is stuck.
Likeliness
Rarely, only occurs when catching up to a Fabric Ledger that the sequencer node has been an active part of before.
Recommendation
Upgrade to 2.8.1 at your convenience.
Compatibility
The following Canton protocol versions are supported:
| Dependency | Version |
|---|---|
| Canton protocol versions | 3, 4, 5 |
Canton has been tested against the following versions of its dependencies:
| Dependency | Version |
|---|---|
| Java Runtime | OpenJDK 64-Bit Server VM Zulu11.66+15-CA (build 11.0.20+8-LTS, mixed mode) |
| Postgres | Recommended: PostgreSQL 12.17 (Debian 12.17-1.pgdg120+1) – Also tested: PostgreSQL 11.16 (Debian 11.16-1.pgdg90+1), PostgreSQL 13.13 (Debian 13.13-1.pgdg120+1), PostgreSQL 14.10 (Debian 14.10-1.pgdg120+1), PostgreSQL 15.5 (Debian 15.5-1.pgdg120+1) |
| Oracle | 19.20.0 |