From 6a807eb895b2bab29687e5fc2ce3e897c3fd4996 Mon Sep 17 00:00:00 2001 From: onalante-msft <89409054+onalante-msft@users.noreply.github.com> Date: Thu, 24 Feb 2022 07:07:48 -0800 Subject: [PATCH] [release/1.2] Update tokio, rayon, and crossbeam to latest compatible versions (#6136) crossbeam-utils recently patched an unsoundness bug in `AtomicCell` arithmetic: crossbeam-rs/crossbeam#781. However, this patch was not backported to the older versions required by tokio 0.1 and rayon. This PR updates tokio and rayon to the latest available versions, allowing some dependencies to upgrade to a safe crossbeam version. However, tokio still remains on a vulnerable version, so manual verification with a patched build was still required to determine that are not affected by the bug. The notary module had to be modified to remove the `tokio-process` dependency due to the latter's reliance on crossbeam-utils 0.6 (through crossbeam-queue). notary now uses `tokio_threadpool::blocking`. ## Azure IoT Edge PR checklist: This checklist is used to make sure that common guidelines for a pull request are followed. ### General Guidelines and Best Practices - [x] I have read the [contribution guidelines](https://github.com/azure/iotedge#contributing). - [x] Title of the pull request is clear and informative. - [x] Description of the pull request includes a concise summary of the enhancement or bug fix. ### Testing Guidelines - [ ] Pull request includes test coverage for the included changes. - Description of the pull request includes - [ ] concise summary of tests added/modified - [x] local testing done. --- edge-modules/edgehub-proxy/Cargo.lock | 88 ++++------- edgelet/Cargo.lock | 147 ++++++++----------- edgelet/edgelet-docker/Cargo.toml | 4 +- edgelet/edgelet-docker/src/notary.rs | 50 +++---- mqtt/Cargo.lock | 4 +- tools/snitch/Cargo.lock | 201 ++++++-------------------- 6 files changed, 170 insertions(+), 324 deletions(-) diff --git a/edge-modules/edgehub-proxy/Cargo.lock b/edge-modules/edgehub-proxy/Cargo.lock index 0675f19372f..0ae721e60b6 100644 --- a/edge-modules/edgehub-proxy/Cargo.lock +++ b/edge-modules/edgehub-proxy/Cargo.lock @@ -212,7 +212,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" dependencies = [ "crossbeam-epoch", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] @@ -224,11 +224,11 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ "autocfg", "cfg-if 0.1.6", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "maybe-uninit", "memoffset 0.5.6", - "scopeguard 1.1.0", + "scopeguard", ] [[package]] @@ -238,16 +238,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ "cfg-if 0.1.6", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] -[[package]] -name = "crossbeam-utils" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d453a17e8bd2b913fa38e8b9cf04bcdbb5be790aa294f2389661d72036015" - [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -692,12 +686,11 @@ checksum = "70fb39025bc7cdd76305867c4eccf2f2dcf6e9a57f5b21a93e1c2d86cd03ec9e" [[package]] name = "lock_api" -version = "0.1.4" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775751a3e69bde4df9b38dd00a1b5d6ac13791e4223d4a0506577f0dd27cfb7a" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" dependencies = [ - "owning_ref", - "scopeguard 0.3.3", + "scopeguard", ] [[package]] @@ -903,33 +896,27 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "owning_ref" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf84f41639e037b484f93433aa3897863b561ed65c6e59c7073d7c561710f37" -dependencies = [ - "stable_deref_trait", -] - [[package]] name = "parking_lot" -version = "0.6.4" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0802bff09003b291ba756dc7e79313e51cc31667e94afbe847def490424cde5" +checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" dependencies = [ "lock_api", "parking_lot_core", + "rustc_version", ] [[package]] name = "parking_lot_core" -version = "0.3.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7f7e6ebdc79edff6fdcb87a55b620174f7a989e3eb31b65231f4af57f00b8c" +checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" dependencies = [ + "cfg-if 0.1.6", + "cloudabi", "libc", - "rand", + "redox_syscall", "rustc_version", "smallvec", "winapi 0.3.6", @@ -1095,12 +1082,6 @@ dependencies = [ "winapi 0.3.6", ] -[[package]] -name = "scopeguard" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" - [[package]] name = "scopeguard" version = "1.1.0" @@ -1214,12 +1195,6 @@ dependencies = [ "maybe-uninit", ] -[[package]] -name = "stable_deref_trait" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" - [[package]] name = "string" version = "0.1.1" @@ -1381,9 +1356,9 @@ dependencies = [ [[package]] name = "tokio-codec" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" +checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" dependencies = [ "bytes", "futures", @@ -1406,7 +1381,7 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", ] @@ -1423,9 +1398,9 @@ dependencies = [ [[package]] name = "tokio-io" -version = "0.1.10" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7392fe0a70d5ce0c882c4778116c519bd5dbaa8a7c3ae3d04578b3afafdcda21" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes", "futures", @@ -1434,11 +1409,11 @@ dependencies = [ [[package]] name = "tokio-reactor" -version = "0.1.6" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b26fd37f1125738b2170c80b551f69ff6fecb277e6e5ca885e53eec2b005018" +checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ - "crossbeam-utils 0.5.0", + "crossbeam-utils", "futures", "lazy_static", "log", @@ -1448,6 +1423,7 @@ dependencies = [ "slab", "tokio-executor", "tokio-io", + "tokio-sync", ] [[package]] @@ -1462,9 +1438,9 @@ dependencies = [ [[package]] name = "tokio-tcp" -version = "0.1.2" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ad235e9dadd126b2d47f6736f65aa1fdcd6420e66ca63f44177bc78df89f912" +checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" dependencies = [ "bytes", "futures", @@ -1482,7 +1458,7 @@ checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ "crossbeam-deque", "crossbeam-queue", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", "lazy_static", "log", @@ -1497,7 +1473,7 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "futures", "slab", "tokio-executor", @@ -1505,9 +1481,9 @@ dependencies = [ [[package]] name = "tokio-tls" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53fdbf3156f588be1676022fe794232b24922d426e8c14f4e46891c1e31c440" +checksum = "354b8cd83825b3c20217a9dc174d6a0c67441a2fae5c41bcb1ea6679f6ae0f7c" dependencies = [ "futures", "native-tls", @@ -1516,9 +1492,9 @@ dependencies = [ [[package]] name = "tokio-udp" -version = "0.1.2" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da941144b816d0dcda4db3a1ba87596e4df5e860a72b70783fe435891f80601c" +checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" dependencies = [ "bytes", "futures", diff --git a/edgelet/Cargo.lock b/edgelet/Cargo.lock index 920e41cf65e..da8ccd7bed7 100644 --- a/edgelet/Cargo.lock +++ b/edgelet/Cargo.lock @@ -90,7 +90,7 @@ checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" [[package]] name = "aziot-cert-common-http" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-key-common", "serde", @@ -99,7 +99,7 @@ dependencies = [ [[package]] name = "aziot-certd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "hex 0.4.2", "http-common", @@ -161,7 +161,7 @@ dependencies = [ [[package]] name = "aziot-identity-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-key-common", "http-common", @@ -171,7 +171,7 @@ dependencies = [ [[package]] name = "aziot-identity-common-http" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-cert-common-http", "aziot-identity-common", @@ -184,7 +184,7 @@ dependencies = [ [[package]] name = "aziot-identityd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-identity-common", "http-common", @@ -196,7 +196,7 @@ dependencies = [ [[package]] name = "aziot-key-client" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-key-common", "aziot-key-common-http", @@ -211,7 +211,7 @@ dependencies = [ [[package]] name = "aziot-key-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "serde", ] @@ -219,7 +219,7 @@ dependencies = [ [[package]] name = "aziot-key-common-http" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-key-common", "http-common", @@ -229,7 +229,7 @@ dependencies = [ [[package]] name = "aziot-key-openssl-engine" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "aziot-key-client", "aziot-key-common", @@ -247,7 +247,7 @@ dependencies = [ [[package]] name = "aziot-keyd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "http-common", "libc", @@ -257,7 +257,7 @@ dependencies = [ [[package]] name = "aziot-keys-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "pkcs11", "serde", @@ -267,7 +267,7 @@ dependencies = [ [[package]] name = "aziot-tpmd-config" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "http-common", "serde", @@ -276,7 +276,7 @@ dependencies = [ [[package]] name = "aziotctl-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "anyhow", "aziot-certd-config", @@ -502,7 +502,7 @@ dependencies = [ [[package]] name = "config-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "serde", "toml", @@ -541,12 +541,12 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.4.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" +checksum = "e54ea8bc3fb1ee042f5aace6e3c6e025d3874866da222930f70ce62aceba0bfa" dependencies = [ - "crossbeam-utils 0.7.2", - "maybe-uninit", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.7", ] [[package]] @@ -555,11 +555,22 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" dependencies = [ - "crossbeam-epoch", + "crossbeam-epoch 0.8.2", "crossbeam-utils 0.7.2", "maybe-uninit", ] +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-epoch 0.9.7", + "crossbeam-utils 0.8.7", +] + [[package]] name = "crossbeam-epoch" version = "0.8.2" @@ -576,12 +587,16 @@ dependencies = [ ] [[package]] -name = "crossbeam-queue" -version = "0.1.2" +name = "crossbeam-epoch" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" +checksum = "c00d6d2ea26e8b151d99093005cb442fb9a37aeaca582a03ec70946f49ab5ed9" dependencies = [ - "crossbeam-utils 0.6.6", + "cfg-if 1.0.0", + "crossbeam-utils 0.8.7", + "lazy_static", + "memoffset 0.6.5", + "scopeguard", ] [[package]] @@ -597,22 +612,22 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.6.6" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ + "autocfg", "cfg-if 0.1.10", "lazy_static", ] [[package]] name = "crossbeam-utils" -version = "0.7.2" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ - "autocfg", - "cfg-if 0.1.10", + "cfg-if 1.0.0", "lazy_static", ] @@ -742,7 +757,7 @@ dependencies = [ "tempfile", "time", "tokio", - "tokio-process", + "tokio-threadpool", "typed-headers", "url 2.1.1", "url_serde", @@ -1142,7 +1157,7 @@ dependencies = [ [[package]] name = "http-common" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "async-trait", "base64 0.13.0", @@ -1526,24 +1541,12 @@ dependencies = [ "kernel32-sys", "libc", "log", - "miow 0.2.2", + "miow", "net2", "slab", "winapi 0.2.8", ] -[[package]] -name = "mio-named-pipes" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" -dependencies = [ - "log", - "mio", - "miow 0.3.7", - "winapi 0.3.9", -] - [[package]] name = "mio-uds" version = "0.6.8" @@ -1567,15 +1570,6 @@ dependencies = [ "ws2_32-sys", ] -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.9", -] - [[package]] name = "native-tls" version = "0.2.4" @@ -1701,7 +1695,7 @@ dependencies = [ [[package]] name = "openssl-build" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "cc", ] @@ -1738,7 +1732,7 @@ dependencies = [ [[package]] name = "openssl-sys2" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "openssl-build", "openssl-sys", @@ -1747,7 +1741,7 @@ dependencies = [ [[package]] name = "openssl2" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "foreign-types", "foreign-types-shared", @@ -1810,7 +1804,7 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkcs11" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" dependencies = [ "foreign-types-shared", "lazy_static", @@ -1827,7 +1821,7 @@ dependencies = [ [[package]] name = "pkcs11-sys" version = "0.1.0" -source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#0181b9d153e721e5a1a8665a671a8f765df7fca2" +source = "git+https://github.com/Azure/iot-identity-service?branch=release/1.2#f1775832441b80c4e0201448eef510a7e4ab2166" [[package]] name = "pkg-config" @@ -1961,25 +1955,25 @@ dependencies = [ [[package]] name = "rayon" -version = "1.4.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270" +checksum = "c06aca804d41dbc8ba42dfd964f0d01334eceb64314b9ecf7c5fad5188a06d90" dependencies = [ "autocfg", - "crossbeam-deque", + "crossbeam-deque 0.8.1", "either", "rayon-core", ] [[package]] name = "rayon-core" -version = "1.8.0" +version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91739a34c4355b5434ce54c9086c5895604a9c278586d1f1aa95e04f66b525a0" +checksum = "d78120e2c850279833f1dd3582f730c4ab53ed95aeaaaa862a2a5c71b1656d8e" dependencies = [ "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils 0.7.2", + "crossbeam-deque 0.8.1", + "crossbeam-utils 0.8.7", "lazy_static", "num_cpus", ] @@ -2497,25 +2491,6 @@ dependencies = [ "log", ] -[[package]] -name = "tokio-process" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43" -dependencies = [ - "crossbeam-queue 0.1.2", - "futures", - "lazy_static", - "libc", - "log", - "mio", - "mio-named-pipes", - "tokio-io", - "tokio-reactor", - "tokio-signal", - "winapi 0.3.9", -] - [[package]] name = "tokio-reactor" version = "0.1.12" @@ -2582,8 +2557,8 @@ version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ - "crossbeam-deque", - "crossbeam-queue 0.2.3", + "crossbeam-deque 0.7.4", + "crossbeam-queue", "crossbeam-utils 0.7.2", "futures", "lazy_static", diff --git a/edgelet/edgelet-docker/Cargo.toml b/edgelet/edgelet-docker/Cargo.toml index 11395c92c9a..da4b3524a5e 100644 --- a/edgelet/edgelet-docker/Cargo.toml +++ b/edgelet/edgelet-docker/Cargo.toml @@ -17,8 +17,8 @@ serde = "1.0" serde_derive = "1.0" serde_json = "1.0" sysinfo = "0.14.10" -tokio = "0.1.11" -tokio-process = "0.2" +tokio = "0.1" +tokio-threadpool = "0.1" url = { version = "2", features = ["serde"] } url_serde = "0.2" diff --git a/edgelet/edgelet-docker/src/notary.rs b/edgelet/edgelet-docker/src/notary.rs index 994bb8a8919..8e5c572c911 100644 --- a/edgelet/edgelet-docker/src/notary.rs +++ b/edgelet/edgelet-docker/src/notary.rs @@ -10,7 +10,6 @@ use failure::ResultExt; use futures::Future; use log::debug; use serde_json::json; -use tokio_process::CommandExt; use crate::{Error, ErrorKind}; @@ -169,33 +168,34 @@ pub fn notary_lookup( Error = Error, > { let mut notary_cmd = Command::new("notary"); + + notary_cmd + .args(&["lookup", image_gun, tag, "-c"]) + .arg(config_path); + if let Some(notary_auth) = notary_auth { notary_cmd.env("NOTARY_AUTH", notary_auth); } - notary_cmd - .arg("lookup") - .args(&[image_gun, tag]) - .arg("-c") - .arg(config_path) - .output_async() - .then(|notary_output| { - let notary_output = notary_output.with_context(|_| { - ErrorKind::LaunchNotary("could not spawn notary process".to_owned()) + + futures::future::poll_fn(move || { + tokio_threadpool::blocking(|| { + let std::process::Output { stdout, .. } = notary_cmd.output().with_context(|e| { + ErrorKind::LaunchNotary(format!("could not spawn notary process: {}", e)) })?; - let notary_output_string = - String::from_utf8(notary_output.stdout).with_context(|_| { - ErrorKind::LaunchNotary("could not retrieve notary output as string".to_owned()) - })?; - debug!("Notary output string is {}", notary_output_string); - let split_array: Vec<&str> = notary_output_string.split_whitespace().collect(); - if split_array.len() < 2 { - return Err(ErrorKind::LaunchNotary( - "notary digest split array is empty".to_owned(), - ) - .into()); - } - - // Notary Server output on lookup is of the format [tag, digest, bytes] - Ok((split_array[1].to_string(), lock)) + let output_str = std::str::from_utf8(&stdout) + .with_context(|_| ErrorKind::LaunchNotary("received invalid utf8".to_owned()))?; + debug!("Notary output string is {}", output_str); + + output_str + .split_whitespace() + .nth(2) + .map(ToOwned::to_owned) + .ok_or_else(|| { + ErrorKind::LaunchNotary("notary digest split array is empty".to_owned()).into() + }) }) + }) + .map_err(|e| ErrorKind::LaunchNotary(format!("should run in thread pool: {}", e))) + .flatten() + .map(|output| (output, lock)) } diff --git a/mqtt/Cargo.lock b/mqtt/Cargo.lock index a4ad911be68..d255eb31cef 100644 --- a/mqtt/Cargo.lock +++ b/mqtt/Cargo.lock @@ -376,9 +376,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.5" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d82cfc11ce7f2c3faef78d8a684447b40d503d9681acebed6cb728d45940c4db" +checksum = "b5e5bed1f1c269533fa816a0a5492b3545209a205ca1a54842be180eb63a16a6" dependencies = [ "cfg-if 1.0.0", "lazy_static", diff --git a/tools/snitch/Cargo.lock b/tools/snitch/Cargo.lock index 82285e530ed..c1adfce50c5 100644 --- a/tools/snitch/Cargo.lock +++ b/tools/snitch/Cargo.lock @@ -405,7 +405,7 @@ version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" dependencies = [ - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] @@ -416,7 +416,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed" dependencies = [ "crossbeam-epoch", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] @@ -428,20 +428,11 @@ checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" dependencies = [ "autocfg 1.0.1", "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "maybe-uninit", "memoffset 0.5.6", - "scopeguard 1.1.0", -] - -[[package]] -name = "crossbeam-queue" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" -dependencies = [ - "crossbeam-utils 0.6.5", + "scopeguard", ] [[package]] @@ -451,20 +442,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" dependencies = [ "cfg-if 0.1.10", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "maybe-uninit", ] -[[package]] -name = "crossbeam-utils" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8306fcef4a7b563b76b7dd949ca48f52bc1141aa067d2ea09565f3e2652aa5c" -dependencies = [ - "cfg-if 0.1.10", - "lazy_static", -] - [[package]] name = "crossbeam-utils" version = "0.7.2" @@ -579,7 +560,6 @@ dependencies = [ "serde_json", "sysinfo", "tokio", - "tokio-process", "url 2.2.2", "url_serde", ] @@ -1205,12 +1185,11 @@ checksum = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" [[package]] name = "lock_api" -version = "0.1.5" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" dependencies = [ - "owning_ref", - "scopeguard 0.3.3", + "scopeguard", ] [[package]] @@ -1317,24 +1296,12 @@ dependencies = [ "kernel32-sys", "libc", "log", - "miow 0.2.2", + "miow", "net2", "slab", "winapi 0.2.8", ] -[[package]] -name = "mio-named-pipes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5e374eff525ce1c5b7687c4cef63943e7686524a387933ad27ca7ec43779cb3" -dependencies = [ - "log", - "mio", - "miow 0.3.7", - "winapi 0.3.7", -] - [[package]] name = "mio-uds" version = "0.6.7" @@ -1356,7 +1323,7 @@ dependencies = [ "lazycell", "log", "mio", - "miow 0.2.2", + "miow", "winapi 0.2.8", "ws2_32-sys", ] @@ -1373,15 +1340,6 @@ dependencies = [ "ws2_32-sys", ] -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi 0.3.7", -] - [[package]] name = "native-tls" version = "0.2.3" @@ -1516,33 +1474,27 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "owning_ref" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13" -dependencies = [ - "stable_deref_trait", -] - [[package]] name = "parking_lot" -version = "0.7.1" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337" +checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" dependencies = [ "lock_api", "parking_lot_core", + "rustc_version", ] [[package]] name = "parking_lot_core" -version = "0.4.0" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9" +checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" dependencies = [ + "cfg-if 0.1.10", + "cloudabi", "libc", - "rand 0.6.5", + "redox_syscall", "rustc_version", "smallvec", "winapi 0.3.7", @@ -1853,7 +1805,7 @@ checksum = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf" dependencies = [ "crossbeam-channel", "crossbeam-deque", - "crossbeam-utils 0.7.2", + "crossbeam-utils", "lazy_static", "num_cpus", ] @@ -1979,12 +1931,6 @@ dependencies = [ "winapi 0.3.7", ] -[[package]] -name = "scopeguard" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27" - [[package]] name = "scopeguard" version = "1.1.0" @@ -2116,15 +2062,6 @@ dependencies = [ "fake-simd", ] -[[package]] -name = "signal-hook-registry" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" -dependencies = [ - "libc", -] - [[package]] name = "slab" version = "0.4.2" @@ -2179,12 +2116,6 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" -[[package]] -name = "stable_deref_trait" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8" - [[package]] name = "string" version = "0.2.1" @@ -2388,9 +2319,9 @@ dependencies = [ [[package]] name = "tokio-codec" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c501eceaf96f0e1793cf26beb63da3d11c738c4a943fdf3746d81d64684c39f" +checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" dependencies = [ "bytes 0.4.12", "futures", @@ -2399,9 +2330,9 @@ dependencies = [ [[package]] name = "tokio-current-thread" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443" +checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" dependencies = [ "futures", "tokio-executor", @@ -2409,19 +2340,19 @@ dependencies = [ [[package]] name = "tokio-executor" -version = "0.1.8" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f27ee0e6db01c5f0b2973824547ce7e637b2ed79b891a9677b0de9bd532b6ac" +checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" dependencies = [ - "crossbeam-utils 0.6.5", + "crossbeam-utils", "futures", ] [[package]] name = "tokio-fs" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af" +checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" dependencies = [ "futures", "tokio-io", @@ -2430,41 +2361,22 @@ dependencies = [ [[package]] name = "tokio-io" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926" +checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" dependencies = [ "bytes 0.4.12", "futures", "log", ] -[[package]] -name = "tokio-process" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43" -dependencies = [ - "crossbeam-queue 0.1.2", - "futures", - "lazy_static", - "libc", - "log", - "mio", - "mio-named-pipes", - "tokio-io", - "tokio-reactor", - "tokio-signal", - "winapi 0.3.7", -] - [[package]] name = "tokio-reactor" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce" +checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" dependencies = [ - "crossbeam-utils 0.6.5", + "crossbeam-utils", "futures", "lazy_static", "log", @@ -2479,9 +2391,9 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1600e90b2602df28ff54ae842519b408fbb25378c3c5aee1b795593e9263dc80" +checksum = "95a199832a67452c60bed18ed951d28d5755ff57b02b3d2d535d9f13a81ea6c9" dependencies = [ "futures", "rustls", @@ -2489,28 +2401,11 @@ dependencies = [ "webpki", ] -[[package]] -name = "tokio-signal" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12" -dependencies = [ - "futures", - "libc", - "mio", - "mio-uds", - "signal-hook-registry", - "tokio-executor", - "tokio-io", - "tokio-reactor", - "winapi 0.3.7", -] - [[package]] name = "tokio-sync" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2162248ff317e2bc713b261f242b69dbb838b85248ed20bb21df56d60ea4cae7" +checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" dependencies = [ "fnv", "futures", @@ -2518,9 +2413,9 @@ dependencies = [ [[package]] name = "tokio-tcp" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119" +checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" dependencies = [ "bytes 0.4.12", "futures", @@ -2537,8 +2432,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" dependencies = [ "crossbeam-deque", - "crossbeam-queue 0.2.3", - "crossbeam-utils 0.7.2", + "crossbeam-queue", + "crossbeam-utils", "futures", "lazy_static", "log", @@ -2549,11 +2444,11 @@ dependencies = [ [[package]] name = "tokio-timer" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e" +checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" dependencies = [ - "crossbeam-utils 0.6.5", + "crossbeam-utils", "futures", "slab", "tokio-executor", @@ -2572,9 +2467,9 @@ dependencies = [ [[package]] name = "tokio-udp" -version = "0.1.3" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66268575b80f4a4a710ef83d087fdfeeabdce9b74c797535fbac18a2cb906e92" +checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" dependencies = [ "bytes 0.4.12", "futures", @@ -2587,9 +2482,9 @@ dependencies = [ [[package]] name = "tokio-uds" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037ffc3ba0e12a0ab4aca92e5234e0dedeb48fddf6ccd260f1f150a36a9f2445" +checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" dependencies = [ "bytes 0.4.12", "futures",