Skip to content

Commit 6e29409

Browse files
leftwoAlan Hanson
andauthored
Update crucible, add DTrace crucible to host image (#5954)
Update Crucible and Propolis to the latest Added a new package, crucible-dtrace that pulls from buildomat a package that contains a set of DTrace scripts. These scripts are extracted into the global zone at /opt/oxide/crucible_dtrace/ Crucible latest includes these updates: Clean up dependency checking, fixing space leak (#1372) Make a DTrace package (#1367) Use a single context in all messages (#1363) Remove `DownstairsWork`, because it's redundant (#1371) Remove `WorkState`, because it's implicit (#1370) Do work immediately upon receipt of a job, if possible (#1366) Move 'do work for one job' into a helper function (#1365) Remove `DownstairsWork` from map when handling it (#1361) Using `block_in_place` for IO operations (#1357) update omicron deps; use re-exported dropshot types in oximeter-producer configuration (#1369) Parameterize more tests (#1364) Misc cleanup, remove sqlite references. (#1360) Fix `Extent::close` docstring (#1359) Make many `Region` functions synchronous (#1356) Remove `Workstate::Done` (unused) (#1355) Return a sorted `VecDeque` directly (#1354) Combine `proc_frame` and `do_work_for` (#1351) Move `do_work_for` and `do_work` into `ActiveConnection` (#1350) Support arbitrary Volumes during replace compare (#1349) Remove the SQLite backend (#1352) Add a custom timeout for buildomat tests (#1344) Move `proc_frame` into `ActiveConnection` (#1348) Remove `UpstairsConnection` from `DownstairsWork` (#1341) Move Work into ConnectionState (#1340) Make `ConnectionState` an enum type (#1339) Parameterize `test_repair.sh` directories (#1345) Remove `Arc<Mutex<Downstairs>>` (#1338) Send message to Downstairs directly (#1336) Consolidate `on_disconnected` and `remove_connection` (#1333) Move disconnect logic to the Downstairs (#1332) Remove invalid DTrace probes. (#1335) Fix outdated comments (#1331) Use message passing when a new connection starts (#1330) Move cancellation into Downstairs, using a token to kill IO tasks (#1329) Make the Downstairs own per-connection state (#1328) Move remaining local state into a `struct ConnectionState` (#1327) Consolidate negotiation + IO operations into one loop (#1322) Allow replacement of a target in a read_only_parent (#1281) Do all IO through IO tasks (#1321) Make `reqwest_client` only present if it's used (#1326) Move negotiation into Downstairs as well (#1320) Update Rust crate clap to v4.5.4 (#1301) Reuse a reqwest client when creating Nexus clients (#1317) Reuse a reqwest client when creating repair client (#1324) Add % to keep buildomat happy (#1323) Downstairs task cleanup (#1313) Update crutest replace test, and mismatch printing. (#1314) Added more DTrace scripts. (#1309) Update Rust crate async-trait to 0.1.80 (#1298) Propolis just has this one update: Allow boot order config in propolis-standalone --------- Co-authored-by: Alan Hanson <alan@oxide.computer>
1 parent 9907585 commit 6e29409

File tree

4 files changed

+43
-27
lines changed

4 files changed

+43
-27
lines changed

Cargo.lock

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,9 @@ cookie = "0.18"
260260
criterion = { version = "0.5.1", features = [ "async_tokio" ] }
261261
crossbeam = "0.8"
262262
crossterm = { version = "0.27.0", features = ["event-stream"] }
263-
crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "8c6d485110ecfae5409575246b986a145c386dc4" }
264-
crucible-pantry-client = { git = "https://github.com/oxidecomputer/crucible", rev = "8c6d485110ecfae5409575246b986a145c386dc4" }
265-
crucible-smf = { git = "https://github.com/oxidecomputer/crucible", rev = "8c6d485110ecfae5409575246b986a145c386dc4" }
263+
crucible-agent-client = { git = "https://github.com/oxidecomputer/crucible", rev = "64e28cea69b427b05064defaf8800a4d678b4612" }
264+
crucible-pantry-client = { git = "https://github.com/oxidecomputer/crucible", rev = "64e28cea69b427b05064defaf8800a4d678b4612" }
265+
crucible-smf = { git = "https://github.com/oxidecomputer/crucible", rev = "64e28cea69b427b05064defaf8800a4d678b4612" }
266266
csv = "1.3.0"
267267
curve25519-dalek = "4"
268268
datatest-stable = "0.2.9"
@@ -408,9 +408,9 @@ prettyplease = { version = "0.2.20", features = ["verbatim"] }
408408
proc-macro2 = "1.0"
409409
progenitor = { git = "https://github.com/oxidecomputer/progenitor", branch = "main" }
410410
progenitor-client = { git = "https://github.com/oxidecomputer/progenitor", branch = "main" }
411-
bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "50cb28f586083fdb990e401bc6146e7dac9b2753" }
412-
propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "50cb28f586083fdb990e401bc6146e7dac9b2753" }
413-
propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "50cb28f586083fdb990e401bc6146e7dac9b2753" }
411+
bhyve_api = { git = "https://github.com/oxidecomputer/propolis", rev = "59868677c70f3cd03f03e12584ad1056da8b5459" }
412+
propolis-client = { git = "https://github.com/oxidecomputer/propolis", rev = "59868677c70f3cd03f03e12584ad1056da8b5459" }
413+
propolis-mock-server = { git = "https://github.com/oxidecomputer/propolis", rev = "59868677c70f3cd03f03e12584ad1056da8b5459" }
414414
proptest = "1.4.0"
415415
quote = "1.0"
416416
rand = "0.8.5"

dev-tools/releng/src/main.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,14 @@ enum InstallMethod {
5656
}
5757

5858
/// Packages to install or bundle in the host OS image.
59-
const HOST_IMAGE_PACKAGES: [(&str, InstallMethod); 7] = [
59+
const HOST_IMAGE_PACKAGES: [(&str, InstallMethod); 8] = [
6060
("mg-ddm-gz", InstallMethod::Install),
6161
("omicron-sled-agent", InstallMethod::Install),
6262
("overlay", InstallMethod::Bundle),
6363
("oxlog", InstallMethod::Install),
6464
("propolis-server", InstallMethod::Bundle),
6565
("pumpkind-gz", InstallMethod::Install),
66+
("crucible-dtrace", InstallMethod::Install),
6667
("switch-asic", InstallMethod::Bundle),
6768
];
6869
/// Packages to install or bundle in the recovery (trampoline) OS image.

package-manifest.toml

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,6 @@ source.type = "composite"
481481
source.packages = [ "crucible.tar.gz", "zone-setup.tar.gz", "zone-network-install.tar.gz" ]
482482
output.type = "zone"
483483

484-
485484
[package.crucible-pantry-zone]
486485
service_name = "crucible_pantry"
487486
only_for_targets.image = "standard"
@@ -505,10 +504,10 @@ only_for_targets.image = "standard"
505504
# 3. Use source.type = "manual" instead of "prebuilt"
506505
source.type = "prebuilt"
507506
source.repo = "crucible"
508-
source.commit = "8c6d485110ecfae5409575246b986a145c386dc4"
507+
source.commit = "64e28cea69b427b05064defaf8800a4d678b4612"
509508
# The SHA256 digest is automatically posted to:
510509
# https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image/<commit>/crucible.sha256.txt
511-
source.sha256 = "a974c976babbbbe4d126fe324e28093b4f69b689e1cf607ce38323befcfa494e"
510+
source.sha256 = "e9051934c7d6e274158d4afdb4523797c913acd1a1262f973bc0ab7a2a253b5f"
512511
output.type = "zone"
513512
output.intermediate_only = true
514513

@@ -517,13 +516,29 @@ service_name = "crucible_pantry_prebuilt"
517516
only_for_targets.image = "standard"
518517
source.type = "prebuilt"
519518
source.repo = "crucible"
520-
source.commit = "8c6d485110ecfae5409575246b986a145c386dc4"
519+
source.commit = "64e28cea69b427b05064defaf8800a4d678b4612"
521520
# The SHA256 digest is automatically posted to:
522521
# https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image/<commit>/crucible-pantry.sha256.txt
523-
source.sha256 = "34418c60ecccade796e604997a11b1fa7f01c364996fa4b57131466e910700a8"
522+
source.sha256 = "a8850bfaf08c11a7baa2e4b14b859613b77d9952dc8d20433ebea8136f8a00d3"
524523
output.type = "zone"
525524
output.intermediate_only = true
526525

526+
[package.crucible-dtrace]
527+
# This package contains a select set of DTrace script that operate on DTrace
528+
# probes that exist for consumers of the crucible upstairs library. These
529+
# scripts are extracted onto the global zone. The source commit here should
530+
# match a version of Crucible that contain probes used by the upstairs. In most
531+
# cases this means the version of Crucible that Propolis is using.
532+
service_name = "crucible_dtrace"
533+
only_for_targets.image = "standard"
534+
source.type = "prebuilt"
535+
source.repo = "crucible"
536+
source.commit = "64e28cea69b427b05064defaf8800a4d678b4612"
537+
# The SHA256 digest is automatically posted to:
538+
# https://buildomat.eng.oxide.computer/public/file/oxidecomputer/crucible/image/<commit>/crucible-dtrace.sha256.txt
539+
source.sha256 = "fe51b1c771f990761c4f8bf95aa26febbfa452df97f8da7d2f329dad88f63e1d"
540+
output.type = "tarball"
541+
527542
# Refer to
528543
# https://github.com/oxidecomputer/propolis/blob/master/package/README.md
529544
# for instructions on building this manually.
@@ -532,10 +547,10 @@ service_name = "propolis-server"
532547
only_for_targets.image = "standard"
533548
source.type = "prebuilt"
534549
source.repo = "propolis"
535-
source.commit = "50cb28f586083fdb990e401bc6146e7dac9b2753"
550+
source.commit = "59868677c70f3cd03f03e12584ad1056da8b5459"
536551
# The SHA256 digest is automatically posted to:
537552
# https://buildomat.eng.oxide.computer/public/file/oxidecomputer/propolis/image/<commit>/propolis-server.sha256.txt
538-
source.sha256 = "864e74222d3e617f1bd7b7ba8d0e5cc18134dca121fc4339369620d1419c5bb0"
553+
source.sha256 = "4ab62342141c655a2bf088ff608fa353063bc3ac44db459e9d56768aa5f4e3d2"
539554
output.type = "zone"
540555

541556
[package.mg-ddm-gz]

0 commit comments

Comments
 (0)