Proposal to elect new release rc--2024-09-12_01-30

Hello there!

We are happy to announce that voting is now open for a new IC release.
The NNS proposal is here: IC NNS Proposal 132481.

Here is a summary of the changes since the last release:

Release Notes for release-2024-09-12_01-30-base (afe1a18291987667fdb52dac3ca44b1aebf7176e)

This release is based on changes since release-2024-09-06_01-30-base (36c1976526fc488d40a89000f81d9f4897d2324e).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Features:

  • 20321d102 Execution,Interface,Message Routing: Support for best-effort messages in CanisterQueues (#879)
  • 6765fd498 Execution,Interface,Networking: Reduce slice limit for install_code messages in system subnets (#1401)
  • bfba799c6 Interface: Define RejectCode::SysUnknown and error codes (#1380)
  • c3a180c94 Interface: pull out canister-based implementations of Ledger/CMC (#1386)
  • 656d7a64a Interface,Message Routing: load number of pages from disk in merge strategy (#1248)
  • cb9249d5d Interface,Node: Add mgmt_mac field to deployment.json (#1365)

Bugfixes:

  • e680d5b91 Interface( Ledger): add effective subaccount to (#1405)
  • 002852f5a Interface,Networking: revert the old error string when outcall response is bigger than the limit (#1411)
  • dfb1c634d Node: Update fetch-mgmt-mac (#1422)

Chores:

  • b869c1d73 Consensus,Interface(ic-backup): Increase timeout for downloading binaries from 15s to 60s (#1388)
  • 0c0fde1bc Consensus,Interface: move down the construction of the Membership struct (#1350)
  • 78e2f00ef Execution,Interface: remove obsolete feature flags for tSchnorr management canister API (#1428)
  • bb60c77a8 Execution,Interface: Fix potential overflows in canister snapshots (#1396)
  • 4cbf6ab98 Execution,Interface: Update granularity of executable canisters histogram (#1406)
  • 0ad8af973 Execution,Interface(RUN): Upgrade wasmtime to 24 (#1185)
  • a770481d1 Execution,Interface: improve canister log memory usage metric buckets (#1356)
  • 56337b90f Interface: ic-boundary: upgrade axum to 0.7 (#1273)
  • 54a1c9769 Interface: Backtrace Test Canister (#1353)
  • db67ca341 Interface,Node: Choose new dummy URL (#1399)
  • e16520fac Interface,Node(IDX): move container to ci dir (#1343)
  • 9ce073f31 Owners: upgrade tokio, quinn and libc (#1374)
  • 4f0abc6bd Node: Update Base Image Refs [2024-09-10-1216] (#1409)

Refactoring:

  • e93ea2e74 Execution,Interface,Message Routing: Drop CanisterQueueItem enum (#1379)
  • 76241e2db Interface,Networking: Adjust the naming from the HttpsOutcalls service definition (#1402)
  • 4332316c9 Interface,Node: Organize rs/ic_os (#1394)
  • 836c2562f Owners(IDX): rename and remove env vars (#1359)

Full list of changes (including the ones that are not relevant to GuestOS) can be found on GitHub.

IC-OS Verification

To build and verify the IC-OS disk image, run:

# From https://github.com/dfinity/ic#verifying-releases
sudo apt-get install -y curl && curl --proto '=https' --tlsv1.2 -sSLO https://raw.githubusercontent.com/dfinity/ic/afe1a18291987667fdb52dac3ca44b1aebf7176e/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c afe1a18291987667fdb52dac3ca44b1aebf7176e

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

3 Likes

Hello there!

We are happy to announce that voting is now open for a new IC release.
The NNS proposal is here: IC NNS Proposal 132482.

Here is a summary of the changes since the last release:

Release Notes for release-2024-09-12_01-30-canister-snapshots (179973553248415fc85679d853b48b0e0ec231c6)

This release is based on changes since release-2024-09-12_01-30-base (afe1a18291987667fdb52dac3ca44b1aebf7176e).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Features:

  • 179973553 Execution,Interface,Networking: Enable canister snapshots

IC-OS Verification

To build and verify the IC-OS disk image, run:

# From https://github.com/dfinity/ic#verifying-releases
sudo apt-get install -y curl && curl --proto '=https' --tlsv1.2 -sSLO https://raw.githubusercontent.com/dfinity/ic/179973553248415fc85679d853b48b0e0ec231c6/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c 179973553248415fc85679d853b48b0e0ec231c6

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

3 Likes

We apologize for any inconvenience caused by a correction submitted after the initial proposal:

Recently, in a pull request made by IDX, the directory /gitlab-ci/ was renamed to /ci/. Unfortunately, this change was not reflected in time within the tooling of the DRE repository. The fix is now available, but proposals 132481 and 132482 were already submitted using the old paths.

Specifically, in the verification instructions, the path:

https://raw.githubusercontent.com/dfinity/ic/afe1a18291987667fdb52dac3ca44b1aebf7176e/gitlab-ci/tools/repro-check.sh

should actually be:

https://raw.githubusercontent.com/dfinity/ic/afe1a18291987667fdb52dac3ca44b1aebf7176e/ci/tools/repro-check.sh

Since all other aspects remain unchanged and the verification script itself is unmodified, we believe this minor oversight should not warrant rejection of the proposals.

We sincerely apologize for any inconvenience and hope the community will accept the corrected link for the verification scripts.

We have already corrected the instructions in the forum posts in this thread, but the NNS proposals themselves are immutable so cannot be corrected.
cc @zenithcode @Lorimer @wpb @ZackDS

5 Likes

Thanks for the update, already checked using ci/tools/repro-check.sh with a clean clone of IC.

4 Likes

I successfully verified hashes with the updated instructions:

5 Likes

Thanks for this @DRE-Team :pray:

I was just about to post a “why’s the 5d25ae6 commit missing in the proposal summary?”, then I noticed that it’s been reverted as part of the same release, and therefore excluded from the proposal summary. Thanks for doing this.

It was also useful to be able to refer to the extend proposal summary on Github to confirm that the commit had been intentionally omitted. Thank you for continually improving release procedures. It makes a difference and is very much appreciated.

5 Likes

Hello there!

We are happy to announce that voting is now open for a new IC release.
The NNS proposal is here: IC NNS Proposal 132548.

Here is a summary of the changes since the last release:

Release Notes for release-2024-09-12_01-30-base-hotfix-deprecated-assert (cacf86a2ea7e21150d106e9e4dda5973088f53c5)

This release is based on changes since release-2024-09-12_01-30-base (afe1a18291987667fdb52dac3ca44b1aebf7176e).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Bugfixes:

  • cacf86a2e Execution,Interface: Remove deprecated assert

IC-OS Verification

To build and verify the IC-OS disk image, run:

# From https://github.com/dfinity/ic#verifying-releases
sudo apt-get install -y curl && curl --proto '=https' --tlsv1.2 -sSLO https://raw.githubusercontent.com/dfinity/ic/cacf86a2ea7e21150d106e9e4dda5973088f53c5/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c cacf86a2ea7e21150d106e9e4dda5973088f53c5

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

3 Likes

Hello there!

We are happy to announce that voting is now open for a new IC release.
The NNS proposal is here: IC NNS Proposal 132547.

Here is a summary of the changes since the last release:

Release Notes for release-2024-09-12_01-30-canister-snapshots-hotfix-deprecated-assert (c66489953ed34670667ad81ce42a172948f289f5)

This release is based on changes since release-2024-09-12_01-30-canister-snapshots (179973553248415fc85679d853b48b0e0ec231c6).

Please note that some commits may be excluded from this release if they’re not relevant, or not modifying the GuestOS image. Additionally, descriptions of some changes might have been slightly modified to fit the release notes format.

To see a full list of commits added since last release, compare the revisions on GitHub.

Bugfixes:

  • c66489953 Execution,Interface: Remove deprecated assert

IC-OS Verification

To build and verify the IC-OS disk image, run:

# From https://github.com/dfinity/ic#verifying-releases
sudo apt-get install -y curl && curl --proto '=https' --tlsv1.2 -sSLO https://raw.githubusercontent.com/dfinity/ic/c66489953ed34670667ad81ce42a172948f289f5/ci/tools/repro-check.sh && chmod +x repro-check.sh && ./repro-check.sh -c c66489953ed34670667ad81ce42a172948f289f5

The two SHA256 sums printed above from a) the downloaded CDN image and b) the locally built image, must be identical, and must match the SHA256 from the payload of the NNS proposal.

3 Likes

Last two proposals are due to the Subnet `lhg73` is stalled
We are basically applying the same change on top of the latest elected versions, so that we can roll out the new versions together with the change.

Since there is only a single change in the proposal, it should be quick and easy to review. We are hoping for a quick review process so that we can roll out these versions already this week, and then hopefully proceed with a regular rollout next week.

4 Likes

Proposal 132547

Observation in code:

  1. Verified removal of an unwanted / deprecated assert
  2. code changes are in accordance with release notes on the proposal

Observation in build:
Ran the verification step and verified that hash mentioned in proposal payload, hash fetched from CDN, and hash generated from local build matches.

2 Likes

Code Review:

A. Deprecated assert statement have been removed.
B. The code modifications align with the latest release notes.

IC-OS Verification:

The hash from the proposal payload, the hash retrieved from the CDN, and the hash generated from the local build are all consistent.

2 Likes
  1. Verified the code changes. Release notes aligns with the commit
  2. Verified the disk image. The hash from CDN image and the locally build matches the hash from the payload given.
2 Likes

Thanks @Sat. Presumably the removed assert (below) does not hold true anymore, and resulted in an unhandled panic that crashed the subnet?

- if let Some(state_changes) = &canister_state_changes {
- 	 let requested = state_changes.system_state_changes.removed_cycles();
-	 // A cleanup callback cannot accept and send cycles.
-	 assert_eq!(requested.get(), 0);
- }

Does this mean that a cleanup callback can now accept and send cycles? I’m curious if this relates to a discussion from last week →

Any extra context you’re able to provide will be useful for evaluating the appropriateness of removing this assertion (without replacing it with some more graceful handling and/or logging of the erroneous state).


Update: Somehow I missed the answer that @dsarlis already gave on the other thread


Verified both builds and voted to adopt :+1:

132548

132547

Thanks for getting the hotfix published promptly :slight_smile:

3 Likes

Hey @sat and @lara - Just saw a new proposal 132548. Sorry, I am a little confused since the earlier proposal 132547 is also same. Are we supposed to review both the proposals?

2 Likes

They’re both proposals to apply the same commit, but the commit is applied on different branches. At the moment the canister snapshots feature hasn’t been deployed to all subnets. There’s a compile-time feature flag that switches it on and off (depending on the deployment target). Given this, we’ve recently been getting two IC OS proposals per week (one with the flag turned on, and one with it turned off, but both proposals containing the same set of changes otherwise).

Yes, it’s necessary to verify both proposals (the base source code is different so the build hashes are different, which need verifying).

Proposal 132548 is applied on top of the prior release that has the feature flag turned off (see ‘This release is based on changes since’ in the proposal summaries).

Proposal 132547 is applied on top of the prior release that has the feature flag turned on. :slight_smile:

5 Likes

Indeed, thanks for clarifying that Lorimer. I thought it was obvious so didn’t explain it in the earlier post, but clearly it deserved a sentence or two more.

Cheers!

4 Likes

Proposal - 132547

Hash: MATCH

Vote: ADOPT

Allows cleanup callbacks to accept and send cycles by eliminating the assertion that previously prevented them from modifying cycles during execution.

Proposal - 132548

Vote: ADOPT

Hash: MATCH

Allows cleanup callbacks to accept and send cycles by eliminating the assertion that previously prevented them from modifying cycles during execution.

3 Likes

Proposal 132547


Proposal 132548

Hashes match, the only change is the removal of deprecated assert from the handle_wasm_execution_of_cleanup_callback function that handles the execution of a cleanup callback in the context of a canister’s execution. It applies canister state changes, processes the callback’s result, and finishes the execution.
Voted yes to adopt both proposals.

1 Like

Proposal 132547

Proposal 132548

Both proposals passed the build verification and the only change is to remove an assertion that is no longer applicable, so I have voted to adopt both proposals.

3 Likes

Thanks @Lorimer for explaining this.

2 Likes