From f73db6d315d81aa6731b9698e394b333a79e49d2 Mon Sep 17 00:00:00 2001 From: Alan Hanson Date: Fri, 19 Apr 2024 19:21:46 +0000 Subject: [PATCH] Update Propolis and Crucible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Propolis changes: Update h2 dependency Add NPT ops API definitions from illumos#15639 server: return better HTTP errors when not ensured (#649) Crucible changes: Make Region test suite generic across backends (#1263) Remove async from now-synchronous functions (#1264) Agent update to support cloning. (#1262) Remove the Active → Faulted transition (#1260) Avoid race condition in crutest rand-read/write (#1261) Add Active -> Offline -> Faulted tests (#1257) Reorganize dummy downstairs tests (#1253) Switch to unbounded queues (#1256) Add Upstairs session ID to dtrace stat probe, cleanup closure (#1254) Panic instead of returning errors in unit tests (#1251) Add a clone option to downstairs create (#1249) --- Cargo.lock | 26 +++++++++++++------------- Cargo.toml | 12 ++++++------ nexus/src/app/sagas/common_storage.rs | 1 + package-manifest.toml | 12 ++++++------ sled-agent/src/sim/storage.rs | 2 ++ 5 files changed, 28 insertions(+), 25 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 07d94add145..501beecb7df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -482,9 +482,9 @@ dependencies = [ [[package]] name = "bhyve_api" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361#8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" +source = "git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7#dd788a311a382b09ce1d3e35f7777b378e09fdf7" dependencies = [ - "bhyve_api_sys 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361)", + "bhyve_api_sys 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7)", "libc", "strum", ] @@ -501,7 +501,7 @@ dependencies = [ [[package]] name = "bhyve_api_sys" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361#8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" +source = "git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7#dd788a311a382b09ce1d3e35f7777b378e09fdf7" dependencies = [ "libc", "strum", @@ -1415,7 +1415,7 @@ dependencies = [ [[package]] name = "crucible-agent-client" version = "0.0.1" -source = "git+https://github.com/oxidecomputer/crucible?rev=5677c7be81b60d9ba9c30991d10376f279a1d3b7#5677c7be81b60d9ba9c30991d10376f279a1d3b7" +source = "git+https://github.com/oxidecomputer/crucible?rev=1ef72f3c935e7dc936bf43310c04668fb60d7a20#1ef72f3c935e7dc936bf43310c04668fb60d7a20" dependencies = [ "anyhow", "chrono", @@ -1431,7 +1431,7 @@ dependencies = [ [[package]] name = "crucible-pantry-client" version = "0.0.1" -source = "git+https://github.com/oxidecomputer/crucible?rev=5677c7be81b60d9ba9c30991d10376f279a1d3b7#5677c7be81b60d9ba9c30991d10376f279a1d3b7" +source = "git+https://github.com/oxidecomputer/crucible?rev=1ef72f3c935e7dc936bf43310c04668fb60d7a20#1ef72f3c935e7dc936bf43310c04668fb60d7a20" dependencies = [ "anyhow", "chrono", @@ -1448,7 +1448,7 @@ dependencies = [ [[package]] name = "crucible-smf" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/crucible?rev=5677c7be81b60d9ba9c30991d10376f279a1d3b7#5677c7be81b60d9ba9c30991d10376f279a1d3b7" +source = "git+https://github.com/oxidecomputer/crucible?rev=1ef72f3c935e7dc936bf43310c04668fb60d7a20#1ef72f3c935e7dc936bf43310c04668fb60d7a20" dependencies = [ "crucible-workspace-hack", "libc", @@ -3499,7 +3499,7 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "bhyve_api 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361)", + "bhyve_api 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7)", "byteorder", "camino", "camino-tempfile", @@ -5436,7 +5436,7 @@ dependencies = [ "pq-sys", "pretty_assertions", "progenitor-client", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7)", "rand 0.8.5", "rcgen", "ref-cast", @@ -5650,7 +5650,7 @@ dependencies = [ "oximeter-instruments", "oximeter-producer", "pretty_assertions", - "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361)", + "propolis-client 0.1.0 (git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7)", "propolis-mock-server", "rand 0.8.5", "rcgen", @@ -7094,7 +7094,7 @@ dependencies = [ [[package]] name = "propolis-client" version = "0.1.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361#8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" +source = "git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7#dd788a311a382b09ce1d3e35f7777b378e09fdf7" dependencies = [ "async-trait", "base64 0.21.7", @@ -7115,7 +7115,7 @@ dependencies = [ [[package]] name = "propolis-mock-server" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361#8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" +source = "git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7#dd788a311a382b09ce1d3e35f7777b378e09fdf7" dependencies = [ "anyhow", "atty", @@ -7125,7 +7125,7 @@ dependencies = [ "futures", "hyper 0.14.28", "progenitor", - "propolis_types 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361)", + "propolis_types 0.0.0 (git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7)", "rand 0.8.5", "reqwest", "schemars", @@ -7166,7 +7166,7 @@ dependencies = [ [[package]] name = "propolis_types" version = "0.0.0" -source = "git+https://github.com/oxidecomputer/propolis?rev=8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361#8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" +source = "git+https://github.com/oxidecomputer/propolis?rev=dd788a311a382b09ce1d3e35f7777b378e09fdf7#dd788a311a382b09ce1d3e35f7777b378e09fdf7" dependencies = [ "schemars", "serde", diff --git a/Cargo.toml b/Cargo.toml index a22d0a08276..4eb01617819 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -197,9 +197,9 @@ cookie = "0.18" criterion = { version = "0.5.1", features = [ "async_tokio" ] } crossbeam = "0.8" crossterm = { version = "0.27.0", features = ["event-stream"] } -crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "5677c7be81b60d9ba9c30991d10376f279a1d3b7" } -crucible-pantry-client = { git = "https://github.com/oxidecomputer/crucible", rev = "5677c7be81b60d9ba9c30991d10376f279a1d3b7" } -crucible-smf = { git = "https://github.com/oxidecomputer/crucible", rev = "5677c7be81b60d9ba9c30991d10376f279a1d3b7" } +crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "1ef72f3c935e7dc936bf43310c04668fb60d7a20" } +crucible-pantry-client = { git = "https://github.com/oxidecomputer/crucible", rev = "1ef72f3c935e7dc936bf43310c04668fb60d7a20" } +crucible-smf = { git = "https://github.com/oxidecomputer/crucible", rev = "1ef72f3c935e7dc936bf43310c04668fb60d7a20" } csv = "1.3.0" curve25519-dalek = "4" datatest-stable = "0.2.6" @@ -339,9 +339,9 @@ prettyplease = { version = "0.2.19", features = ["verbatim"] } proc-macro2 = "1.0" progenitor = { git = "https://github.com/oxidecomputer/progenitor", branch = "main" } progenitor-client = { git = "https://github.com/oxidecomputer/progenitor", branch = "main" } -bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" } -propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" } -propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" } +bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "dd788a311a382b09ce1d3e35f7777b378e09fdf7" } +propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "dd788a311a382b09ce1d3e35f7777b378e09fdf7" } +propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "dd788a311a382b09ce1d3e35f7777b378e09fdf7" } proptest = "1.4.0" quote = "1.0" rand = "0.8.5" diff --git a/nexus/src/app/sagas/common_storage.rs b/nexus/src/app/sagas/common_storage.rs index bf530ef8589..0fe14f6d2a3 100644 --- a/nexus/src/app/sagas/common_storage.rs +++ b/nexus/src/app/sagas/common_storage.rs @@ -49,6 +49,7 @@ pub(crate) async fn ensure_region_in_dataset( cert_pem: None, key_pem: None, root_pem: None, + source: None, }; let create_region = || async { diff --git a/package-manifest.toml b/package-manifest.toml index 2819010335f..7fed6722712 100644 --- a/package-manifest.toml +++ b/package-manifest.toml @@ -492,10 +492,10 @@ only_for_targets.image = "standard" # 3. Use source.type = "manual" instead of "prebuilt" source.type = "prebuilt" source.repo = "crucible" -source.commit = "5677c7be81b60d9ba9c30991d10376f279a1d3b7" +source.commit = "1ef72f3c935e7dc936bf43310c04668fb60d7a20" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image//crucible.sha256.txt -source.sha256 = "5341c5572f80b8d1763f6563412dc03d9604d8c7af4022fc5da55338ee60d35c" +source.sha256 = "f4b9189d82729f851bab25ee7991134db2732f82657a15e88889500ed8a6e6c2" output.type = "zone" output.intermediate_only = true @@ -504,10 +504,10 @@ service_name = "crucible_pantry_prebuilt" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "crucible" -source.commit = "5677c7be81b60d9ba9c30991d10376f279a1d3b7" +source.commit = "1ef72f3c935e7dc936bf43310c04668fb60d7a20" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image//crucible-pantry.sha256.txt -source.sha256 = "bf281bae1331279109dac23328ff86756331d7776e69396b02c77a4d08a225c7" +source.sha256 = "e7bf9cf165c3191c899c1f019df4edb6a34c0fe83d61cce861ae0aefc649882d" output.type = "zone" output.intermediate_only = true @@ -519,10 +519,10 @@ service_name = "propolis-server" only_for_targets.image = "standard" source.type = "prebuilt" source.repo = "propolis" -source.commit = "8ff3ab62246fa1f8b8a5bfab0a7b8e1000926361" +source.commit = "dd788a311a382b09ce1d3e35f7777b378e09fdf7" # The SHA256 digest is automatically posted to: # https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image//propolis-server.sha256.txt -source.sha256 = "35c5956b14d3b0a843351ce8ea7e8cb52e631a96a89041810fe0f91cc4072638" +source.sha256 = "f9ebee502fdaa115563ac84e855805c0bf5582437820445dd1734423216dfc5b" output.type = "zone" [package.mg-ddm-gz] diff --git a/sled-agent/src/sim/storage.rs b/sled-agent/src/sim/storage.rs index b21edf09154..6a688f6101c 100644 --- a/sled-agent/src/sim/storage.rs +++ b/sled-agent/src/sim/storage.rs @@ -97,6 +97,8 @@ impl CrucibleDataInner { cert_pem: None, key_pem: None, root_pem: None, + source: None, + read_only: false, }; let old = self.regions.insert(id, region.clone());