Skip to content

replace linkerd-concurrency-limit with Tower#1107

Merged
olix0r merged 1 commit intomainfrom
eliza/tower-concurrency-limit
Jun 17, 2021
Merged

replace linkerd-concurrency-limit with Tower#1107
olix0r merged 1 commit intomainfrom
eliza/tower-concurrency-limit

Conversation

@hawkw
Copy link
Contributor

@hawkw hawkw commented Jun 17, 2021

tower-rs/tower#574 added a GlobalConcurrencyLimitLayer which has the
same behavior as our linkerd-concurrency-limit crate (sharing a single
semaphore across all instances of a service). This was published in
Tower 0.4.8, and now that we've updated to that version, we can remove
our implementation in favour of upstream.

This has the nice advantage of "improving" code coverage by laundering
the responsibility for testing this code to upstream. And unlike us,
upstream actually has tests!

tower-rs/tower#574 added a `GlobalConcurrencyLimitLayer` which has the
same behavior as our `linkerd-concurrency-limit` crate (sharing a single
semaphore across all instances of a service). This was published in
Tower 0.4.8, and now that we've updated to that version, we can remove
our implementation in favour of upstream.

This has the nice advantage of "improving" code coverage by laundering
the responsibility for testing this code to upstream. And unlike us,
upstream [actually has tests][1]!

[1]: https://github.com/tower-rs/tower/blob/74f9047f309d16fa25978e34ea86d639383c02af/tower/tests/limit/concurrency.rs
@hawkw hawkw requested review from a team and olix0r June 17, 2021 21:27
@codecov-commenter
Copy link

Codecov Report

Merging #1107 (fa5af8e) into main (cde2816) will decrease coverage by 0.03%.
The diff coverage is 66.66%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1107      +/-   ##
==========================================
- Coverage   74.43%   74.40%   -0.04%     
==========================================
  Files         233      232       -1     
  Lines       14666    14635      -31     
==========================================
- Hits        10917    10889      -28     
+ Misses       3749     3746       -3     
Impacted Files Coverage Δ
linkerd/app/core/src/svc.rs 73.75% <ø> (ø)
linkerd/app/outbound/src/ingress.rs 0.00% <0.00%> (ø)
linkerd/app/inbound/src/http/mod.rs 74.07% <100.00%> (ø)
linkerd/app/outbound/src/http/server.rs 80.76% <100.00%> (ø)
linkerd/service-profiles/src/proto.rs 67.52% <0.00%> (-3.42%) ⬇️
linkerd/app/integration/src/tests/identity.rs 54.40% <0.00%> (+0.51%) ⬆️
linkerd/proxy/tap/src/grpc/match_.rs 61.80% <0.00%> (+1.00%) ⬆️
linkerd/app/integration/src/metrics.rs 71.79% <0.00%> (+1.70%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update cde2816...fa5af8e. Read the comment docs.

@olix0r olix0r merged commit 0fa39ed into main Jun 17, 2021
@olix0r olix0r deleted the eliza/tower-concurrency-limit branch June 17, 2021 22:24
@hawkw
Copy link
Contributor Author

hawkw commented Jun 18, 2021

why the heck did this decrease coverage, i'm very confused

olix0r added a commit to linkerd/linkerd2 that referenced this pull request Jun 18, 2021
This release updates a wide variety of the proxy's dependencies. No
user-facing changes are expected.

---

* tap: Restore tap matching tests (linkerd/linkerd2-proxy#1042)
* Add a 'rustfmt' feature to crates that use gRPC (linkerd/linkerd2-proxy#1041)
* tap: return an error when a `PortRange`'s min > max (linkerd/linkerd2-proxy#1044)
* retry: Enforce a cap on max replay buffer size (linkerd/linkerd2-proxy#1043)
* Add codecov integration via cargo-tarpaulin (linkerd/linkerd2-proxy#1047)
* Add a dependabot configuration (linkerd/linkerd2-proxy#1046)
* Fixup dependabot configuration (linkerd/linkerd2-proxy#1049)
* build(deps): bump actions/upload-artifact from 2.2.3 to 2.2.4 (linkerd/linkerd2-proxy#1050)
* build(deps): bump softprops/action-gh-release from 0.1.5 to 1 (linkerd/linkerd2-proxy#1051)
* build(deps): bump libfuzzer-sys in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1052)
* build(deps): bump libfuzzer-sys from 0.4.0 to 0.4.2 in /linkerd/tls/fuzz (linkerd/linkerd2-proxy#1053)
* build(deps): bump libfuzzer-sys in /linkerd/addr/fuzz (linkerd/linkerd2-proxy#1054)
* build(deps): bump tokio from 1.5.0 to 1.7.0 in /linkerd/proxy/http/fuzz (linkerd/linkerd2-proxy#1056)
* build(deps): bump tracing from 0.1.25 to 0.1.26 in /linkerd/dns/fuzz (linkerd/linkerd2-proxy#1055)
* build(deps): bump libfuzzer-sys from 0.4.0 to 0.4.2 in /linkerd/dns/fuzz (linkerd/linkerd2-proxy#1058)
* build(deps): bump tracing from 0.1.25 to 0.1.26 in /linkerd/addr/fuzz (linkerd/linkerd2-proxy#1059)
* build(deps): bump libfuzzer-sys in /linkerd/proxy/http/fuzz (linkerd/linkerd2-proxy#1060)
* build(deps): bump tracing in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1061)
* build(deps): bump tokio from 1.5.0 to 1.7.0 in /linkerd/dns/fuzz (linkerd/linkerd2-proxy#1062)
* build(deps): bump tokio in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1063)
* build(deps): bump arbitrary in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1064)
* build(deps): bump tokio from 1.5.0 to 1.7.0 in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1065)
* build(deps): bump tracing in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1066)
* build(deps): bump hyper in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1067)
* build(deps): bump deflate from 0.7.20 to 0.9.1 (linkerd/linkerd2-proxy#1068)
* build(deps): bump libfuzzer-sys in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1069)
* build(deps): bump tonic-build from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1070)
* build(deps): bump linkerd2-proxy-api from `453ac1e` to `48f13d6` (linkerd/linkerd2-proxy#1071)
* build(deps): bump ipnet from 2.3.0 to 2.3.1 (linkerd/linkerd2-proxy#1072)
* build(deps): bump regex from 1.4.3 to 1.4.6 (linkerd/linkerd2-proxy#1073)
* build(deps): bump arbitrary in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1057)
* Update tonic to v0.4.3 (linkerd/linkerd2-proxy#1080)
* ci: Skip coverage tests on dependencies-only changes (linkerd/linkerd2-proxy#1074)
* build(deps): bump indexmap from 1.6.1 to 1.6.2 (linkerd/linkerd2-proxy#1075)
* build(deps): bump rand from 0.8.3 to 0.8.4 (linkerd/linkerd2-proxy#1077)
* build(deps): bump tokio-test from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1076)
* build(deps): bump pin-project from 1.0.5 to 1.0.7 (linkerd/linkerd2-proxy#1078)
* build(deps): bump arbitrary from 1.0.0 to 1.0.1 (linkerd/linkerd2-proxy#1083)
* outbound: replace `sleep`s in test with `yield_now` (linkerd/linkerd2-proxy#1085)
* build(deps): bump thiserror from 1.0.23 to 1.0.25 (linkerd/linkerd2-proxy#1081)
* build(deps): bump async-stream from 0.3.0 to 0.3.2 (linkerd/linkerd2-proxy#1084)
* build(deps): bump serde_json from 1.0.62 to 1.0.64 (linkerd/linkerd2-proxy#1086)
* build(deps): bump tokio-stream from 0.1.5 to 0.1.6 (linkerd/linkerd2-proxy#1082)
* build(deps): Skip coverage by PR title (linkerd/linkerd2-proxy#1087)
* fuzz: Omit lockfiles from version control (linkerd/linkerd2-proxy#1088)
* build(deps): bump tokio from 1.6.1 to 1.7.0 (linkerd/linkerd2-proxy#1079)
* build(deps): bump mimalloc from 0.1.24 to 0.1.25 (linkerd/linkerd2-proxy#1089)
* build(deps): bump tokio-util from 0.6.5 to 0.6.7 (linkerd/linkerd2-proxy#1090)
* build(deps): bump libc from 0.2.86 to 0.2.97 (linkerd/linkerd2-proxy#1093)
* build(deps): bump http from 0.2.3 to 0.2.4 (linkerd/linkerd2-proxy#1092)
* build(deps): bump rustls from 0.19.0 to 0.19.1 (linkerd/linkerd2-proxy#1094)
* build(deps): bump async-trait from 0.1.42 to 0.1.50 (linkerd/linkerd2-proxy#1095)
* build(deps): bump tracing-subscriber from 0.2.17 to 0.2.18 (linkerd/linkerd2-proxy#1096)
* build(deps): bump http-body from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1097)
* build(deps): bump tracing from 0.1.25 to 0.1.26 (linkerd/linkerd2-proxy#1098)
* build(deps): bump hdrhistogram from 7.2.0 to 7.3.0 (linkerd/linkerd2-proxy#1099)
* build(deps): bump regex from 1.4.6 to 1.5.4 (linkerd/linkerd2-proxy#1100)
* build(deps): bump tower from 0.4.7 to 0.4.8 (linkerd/linkerd2-proxy#1102)
* build(deps): bump libfuzzer-sys from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1103)
* build(deps): bump actions/download-artifact from 2.0.9 to 2.0.10 (linkerd/linkerd2-proxy#1104)
* Remove unneeded uses of indexmap (linkerd/linkerd2-proxy#1048)
* build(deps): Update trust-dns to v0.21.0-alpha.1 (linkerd/linkerd2-proxy#1105)
* config: add a `PortSet` type (linkerd/linkerd2-proxy#1106)
* replace `linkerd-concurrency-limit` with Tower (linkerd/linkerd2-proxy#1107)
* build(deps): Update Rust to v1.53.0 (linkerd/linkerd2-proxy#1108)
adleong pushed a commit to linkerd/linkerd2 that referenced this pull request Jun 18, 2021
This release updates a wide variety of the proxy's dependencies. No
user-facing changes are expected.

---

* tap: Restore tap matching tests (linkerd/linkerd2-proxy#1042)
* Add a 'rustfmt' feature to crates that use gRPC (linkerd/linkerd2-proxy#1041)
* tap: return an error when a `PortRange`'s min > max (linkerd/linkerd2-proxy#1044)
* retry: Enforce a cap on max replay buffer size (linkerd/linkerd2-proxy#1043)
* Add codecov integration via cargo-tarpaulin (linkerd/linkerd2-proxy#1047)
* Add a dependabot configuration (linkerd/linkerd2-proxy#1046)
* Fixup dependabot configuration (linkerd/linkerd2-proxy#1049)
* build(deps): bump actions/upload-artifact from 2.2.3 to 2.2.4 (linkerd/linkerd2-proxy#1050)
* build(deps): bump softprops/action-gh-release from 0.1.5 to 1 (linkerd/linkerd2-proxy#1051)
* build(deps): bump libfuzzer-sys in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1052)
* build(deps): bump libfuzzer-sys from 0.4.0 to 0.4.2 in /linkerd/tls/fuzz (linkerd/linkerd2-proxy#1053)
* build(deps): bump libfuzzer-sys in /linkerd/addr/fuzz (linkerd/linkerd2-proxy#1054)
* build(deps): bump tokio from 1.5.0 to 1.7.0 in /linkerd/proxy/http/fuzz (linkerd/linkerd2-proxy#1056)
* build(deps): bump tracing from 0.1.25 to 0.1.26 in /linkerd/dns/fuzz (linkerd/linkerd2-proxy#1055)
* build(deps): bump libfuzzer-sys from 0.4.0 to 0.4.2 in /linkerd/dns/fuzz (linkerd/linkerd2-proxy#1058)
* build(deps): bump tracing from 0.1.25 to 0.1.26 in /linkerd/addr/fuzz (linkerd/linkerd2-proxy#1059)
* build(deps): bump libfuzzer-sys in /linkerd/proxy/http/fuzz (linkerd/linkerd2-proxy#1060)
* build(deps): bump tracing in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1061)
* build(deps): bump tokio from 1.5.0 to 1.7.0 in /linkerd/dns/fuzz (linkerd/linkerd2-proxy#1062)
* build(deps): bump tokio in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1063)
* build(deps): bump arbitrary in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1064)
* build(deps): bump tokio from 1.5.0 to 1.7.0 in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1065)
* build(deps): bump tracing in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1066)
* build(deps): bump hyper in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1067)
* build(deps): bump deflate from 0.7.20 to 0.9.1 (linkerd/linkerd2-proxy#1068)
* build(deps): bump libfuzzer-sys in /linkerd/app/inbound/fuzz (linkerd/linkerd2-proxy#1069)
* build(deps): bump tonic-build from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1070)
* build(deps): bump linkerd2-proxy-api from `453ac1e` to `48f13d6` (linkerd/linkerd2-proxy#1071)
* build(deps): bump ipnet from 2.3.0 to 2.3.1 (linkerd/linkerd2-proxy#1072)
* build(deps): bump regex from 1.4.3 to 1.4.6 (linkerd/linkerd2-proxy#1073)
* build(deps): bump arbitrary in /linkerd/transport-header/fuzz (linkerd/linkerd2-proxy#1057)
* Update tonic to v0.4.3 (linkerd/linkerd2-proxy#1080)
* ci: Skip coverage tests on dependencies-only changes (linkerd/linkerd2-proxy#1074)
* build(deps): bump indexmap from 1.6.1 to 1.6.2 (linkerd/linkerd2-proxy#1075)
* build(deps): bump rand from 0.8.3 to 0.8.4 (linkerd/linkerd2-proxy#1077)
* build(deps): bump tokio-test from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1076)
* build(deps): bump pin-project from 1.0.5 to 1.0.7 (linkerd/linkerd2-proxy#1078)
* build(deps): bump arbitrary from 1.0.0 to 1.0.1 (linkerd/linkerd2-proxy#1083)
* outbound: replace `sleep`s in test with `yield_now` (linkerd/linkerd2-proxy#1085)
* build(deps): bump thiserror from 1.0.23 to 1.0.25 (linkerd/linkerd2-proxy#1081)
* build(deps): bump async-stream from 0.3.0 to 0.3.2 (linkerd/linkerd2-proxy#1084)
* build(deps): bump serde_json from 1.0.62 to 1.0.64 (linkerd/linkerd2-proxy#1086)
* build(deps): bump tokio-stream from 0.1.5 to 0.1.6 (linkerd/linkerd2-proxy#1082)
* build(deps): Skip coverage by PR title (linkerd/linkerd2-proxy#1087)
* fuzz: Omit lockfiles from version control (linkerd/linkerd2-proxy#1088)
* build(deps): bump tokio from 1.6.1 to 1.7.0 (linkerd/linkerd2-proxy#1079)
* build(deps): bump mimalloc from 0.1.24 to 0.1.25 (linkerd/linkerd2-proxy#1089)
* build(deps): bump tokio-util from 0.6.5 to 0.6.7 (linkerd/linkerd2-proxy#1090)
* build(deps): bump libc from 0.2.86 to 0.2.97 (linkerd/linkerd2-proxy#1093)
* build(deps): bump http from 0.2.3 to 0.2.4 (linkerd/linkerd2-proxy#1092)
* build(deps): bump rustls from 0.19.0 to 0.19.1 (linkerd/linkerd2-proxy#1094)
* build(deps): bump async-trait from 0.1.42 to 0.1.50 (linkerd/linkerd2-proxy#1095)
* build(deps): bump tracing-subscriber from 0.2.17 to 0.2.18 (linkerd/linkerd2-proxy#1096)
* build(deps): bump http-body from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1097)
* build(deps): bump tracing from 0.1.25 to 0.1.26 (linkerd/linkerd2-proxy#1098)
* build(deps): bump hdrhistogram from 7.2.0 to 7.3.0 (linkerd/linkerd2-proxy#1099)
* build(deps): bump regex from 1.4.6 to 1.5.4 (linkerd/linkerd2-proxy#1100)
* build(deps): bump tower from 0.4.7 to 0.4.8 (linkerd/linkerd2-proxy#1102)
* build(deps): bump libfuzzer-sys from 0.4.0 to 0.4.2 (linkerd/linkerd2-proxy#1103)
* build(deps): bump actions/download-artifact from 2.0.9 to 2.0.10 (linkerd/linkerd2-proxy#1104)
* Remove unneeded uses of indexmap (linkerd/linkerd2-proxy#1048)
* build(deps): Update trust-dns to v0.21.0-alpha.1 (linkerd/linkerd2-proxy#1105)
* config: add a `PortSet` type (linkerd/linkerd2-proxy#1106)
* replace `linkerd-concurrency-limit` with Tower (linkerd/linkerd2-proxy#1107)
* build(deps): Update Rust to v1.53.0 (linkerd/linkerd2-proxy#1108)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants