The build was successful, and all the commit descriptions matched the changes in the code. I only have one piece of feedback: there’s a typo in a function name, but that’s about it. I have no concerns after reviewing each commit.
Commits Summary
Commits:
Features:
75dd48c38
Adds the num-traits
dependency to cargo. “Sandbox RSS" refers to the total resident set size (RSS) of memory used by sandbox processes, with a set limit (in this code, 50 GiB) after which sandbox processes may be evicted to manage memory efficiently. Sandbox process is terminated or removed from memory when it exceeds DEFAULT_MAX_SANDBOXES_RSS
. DEFAULT_MAX_SANDBOX_COUNT
went from 500
to 5k
.
The updated code introduces an rss
field in EvictionCandidate
to track memory usage, allowing the evict
function to consider both idle time and memory limits (max_sandboxes_rss
) when selecting candidates for eviction.
145c093b9
charge_idle_canisters
iterates through canisters in a specific order and completes the execution of any canisters in an idle state, marking them as fully executed, while skipping those in the process of code installation or already actively executing tasks.
ec1cc659a
Now inner_round
of scheduler
returns round_fully_executed_canister_ids
.
finish_canister_execution
marks a canister as fully executed if it has completed all pending executions or is the first canister in the iteration, recording the round and adding it to a list of fully executed canister IDs.
finish_round
charges canisters that completed full executions by updating their priority_credit
and distributes any remaining compute capacity across all canisters, adjusting their accumulated_priority
based on their compute allocation and available free capacity.
The values for charging seem reasonable and scalable.
dbe869c88
The checks for on_low_wasm_memory_hook_status
in the front
and pop_front
methods ensure that memory management tasks are prioritized in the canister’s execution.
The OnLowWasmMemory
hook allows a canister to respond when its memory usage reaches a critical threshold, enabling the developer to perform cleanup or memory optimization tasks.
944b8d0c3
Integrates stable storage by implementing the Storable
trait for the Allowance
struct using candid::Nat
and ic_stable_structures
, enabling serialization compatible with stable memory. Additionally, it modifies the serialization logic to exclude the arrived_at
field, ensuring the Allowance
data is correctly managed during the migration to stable structures.
It matches the description.
f55a7562c
The recent changes in the StreamHandler
involve updating how message induction errors are handled. The induct_message_impl
method now returns Option<(RejectReason, RequestOrResponse)>
instead of Result
, refining how different outcomes like drops, rejections, and reroutes are managed. Additionally, the handling of legacy certification versions has been adjusted, including updates to tests for certification version behaviors and deprecation of older logic tied to versions below V19. There are some test specific to canister migration to different subnets. Test verifies that after a canister is migrated between subnets, all pending calls conclude properly without leaving any hanging calls, ensuring that the message routing and migration process works as expected.
c831d22ab
HTTP/2 Support enabled.
Test verifies that the outcalls adapter correctly supports HTTP/2 and HTTP/1.1 protocols by negotiating the appropriate ALPN (Application-Layer Protocol Negotiation) protocol during a TLS handshake. It sets up a test server with specified ALPN protocols, sends a request, and checks if the response has a status of OK only when the negotiated protocol matches the expected HTTP version.
b1ffe8292
Now we always allows synchronous responses to v3 update calls regardless of the subnet. This matches the commit description.
0fadddd59
New mac_address
module, adding functionality for handling MAC addresses, including parsing, formatting, and deriving values dynamically when not provided. This refactoring separates MAC address handling from other network components. Additionally, ICOSSettings
now requires mgmt_mac
and deployment_environment
as fields.
e31dc4c89
Storable
trait implementation for the Account
struct, enabling efficient serialization and deserialization with a defined MAX_SERIALIZATION_LEN
for bounded storage size. It also adds dependencies on ic_stable_structures
and includes functionality for converting Account
instances into byte representations and reading them back.
00a3fb941
Moving various http_archive
, http_file
, and other dependencies from WORKSPACE.bazel
into MODULE.bazel
. This restructuring helps organize external dependencies and configurations more cleanly, centralizing them in MODULE.bazel
while reducing clutter in the WORKSPACE.bazel
file.
Bugfix:
b7bf79f47
New metric scheduler_zero_instruction_messages
.
Check for non-zero message counts before recording execution duration, and if no messages are processed, it stops the timer without recording and increments a zero_instruction_messages
metric which matches commit description.
03dd6ee6d
Change ic-icrc1-ledger-sm-tests
to ic-ledger-suite-state-machine-tests
, updating references across various Bazel and Cargo files to reflect this change. Dependencies and test paths were adjusted accordingly to support the renamed modules.
c78e3549d
Addition of TokioExecutor
and TokioTimer
imports from hyper_util::rt
. Fix in http_client
add pool_timer
4b3c41b7c
Refactors how VecDeque
queues are managed in the get_successor_blocks
and get_next_headers
functions, changing from a vector of BlockHash
copies to using references (&BlockHash
). This change optimizes memory usage by reducing the need to clone block hashes during the breadth-first search and header retrieval processes.
34b7182bf
Refactors the handling of the incoming
connection source by creating a boxed Stream
for IncomingSource::Path
and IncomingSource::Systemd
. So incoming
is setup sync before rt_handle.spawn
.
b545f6b10
Replace asynchronous locks with synchronous locks using Mutex
instead of tokio::sync::Mutex
in the Bitcoin adapter. This aligns with the commit asynchronous mutex is more expensive than an ordinary mutex
.
6afff64b2
Workaround for build determinism issues with proc-macro2
by checking if the proc_macro2.d
file exists in the output directory and removing it if it does. Matches commit description.
1e22810de
Remove certs.
1eae28c1e
Add /var/lib/ic/data/recovery
into script creation to make it easier for administrator.
2ce147d64
Allow more read access to node_exporter_t
. Expanding the health metrics of the system.
Chores:
cce8a1797
GracefulExpect
trait, providing a custom expect_graceful
method that prints user-friendly error messages before terminating, replacing the default expect
calls throughout the recovery code. This change is applied across various modules like app_subnet_recovery
, nns_recovery_failover_nodes
, and nns_recovery_same_nodes
. Matches description.
0a5351777
Several dependency updates, such as upgrading “paste” from version 1.0.14 to 1.0.15, “subtle” from 2.5.0 to 2.6.1, and “rsa” from 0.9.2 to 0.9.6. Many packages now use a workspace configuration for shared dependencies like “serde” and "subtle,”. Matches description.
5d1978e61
Removing the deprecated deprecated_queue
field from the CanisterQueue
message structure in protobuf definitions and corresponding Rust code. This matches the commit description.
588ad7a46
Updating the base image for the build and CI processes to a new version across multiple configuration files. Update Rust toolchain from version 1.81.0
to 1.82.0
.
ee61d5074
Upgrade the clap
dependency from version 3.2.25
to 4.5.19
and integrating it into the workspace. This matches the commit description.
947217661
Update of the proc-macro2
crate from version 1.0.85 to 1.0.88 and the quote
crate from 1.0.35 to 1.0.37. Removal of ring
dep which matches the commit description.
eadc89853
Upgrade async-trait
from version 0.1.81
to 0.1.83
, and async-stream
from 0.3.5
to 0.3.6
. Several updates are also made to OpenTelemetry dependencies. Removal of older versions of hyper-timeout
and opentelemetry-prometheus
.
d3def2417
Matches description of upgrade hyper, rustls and reqwest.
dff73c67c
Adjusting the configuration and setup of systemd services within the boundary and guest operating systems. Adjusting the order of After
and Before
targets for services like node_exporter
, setup-hostname
, and vsock-agent
, as well as renaming and restructuring systemd service files. Adjustments to file paths and labels for various setup scripts.
5ca5d3c5b
Matches description of updating base container image references.
Refactoring:
ecc5be798
Removal of async_v3_handler
, new_asynchronous_call_service_router
. Now we just have sync call_v3_router
.
Other:
edde85e8c
Increase DEFAULT_MAX_SANDBOX_COUNT
to 2_000
4e666d720
Similar to reviewed c831d22ab
Build is successful and code change matches description.
Build is successful and code change matches description. However, it is a bit concerning that we are reverting commits that we just added in proposal - 133798.