From 02f7613acd17b3365bf29474467758e5692bda4f Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Mon, 16 Sep 2024 09:45:27 +0200 Subject: [PATCH 1/7] build: force old timer behavior Until https://github.com/golang/go/issues/69312 is resolved, force the old timer behavior by specifying an older go version in the go.mod file. --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 90fd42899a..b830145a55 100644 --- a/go.mod +++ b/go.mod @@ -128,4 +128,4 @@ require ( modernc.org/token v1.1.0 // indirect ) -go 1.23.0 +go 1.22.7 From 0325fae8f320bac4d04c08b7f690412a82f591a4 Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Fri, 13 Sep 2024 23:06:17 +0200 Subject: [PATCH 2/7] DROP ME: all-the-things --- .buildkite/pipeline.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 766833d3ce..66807f0b33 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -108,6 +108,7 @@ steps: key: e2e steps: - label: "E2E: default :man_in_business_suit_levitating: (scion, ping)" + parallelism: 20 command: - echo "--- build" - make @@ -135,6 +136,7 @@ steps: key: e2e_integration_tests_v2 retry: *automatic-retry - label: "E2E: failing links :man_in_business_suit_levitating:" + parallelism: 20 command: - echo "--- build" - make @@ -150,6 +152,7 @@ steps: key: e2e_revocation_test_v2 retry: *automatic-retry - label: "E2E: default :docker: (ping)" + parallelism: 20 command: - echo "--- build" - make build-dev docker-images From 94a91ab024caeb084a3a75874ee85073126f79df Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Mon, 16 Sep 2024 09:52:55 +0200 Subject: [PATCH 3/7] revert changes from #4605 --- .buildkite/pipeline.yml | 6 +++--- tools/await-connectivity | 7 ++----- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 66807f0b33..a00e9f7ae5 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -117,7 +117,7 @@ steps: - ./scion.sh run - tools/await-connectivity - ./bin/scion_integration || ( echo "^^^ +++" && false ) - - ./bin/end2end_integration --attempts=3 || ( echo "^^^ +++" && false ) + - ./bin/end2end_integration || ( echo "^^^ +++" && false ) plugins: &scion-run-hooks - scionproto/metahook#v0.3.0: pre-command: .buildkite/cleanup-leftovers.sh @@ -144,7 +144,7 @@ steps: - ./scion.sh topology -c topology/default-no-peers.topo - ./scion.sh run - tools/await-connectivity - - ./bin/end2end_integration --attempts=3 || ( echo "^^^ +++" && false ) + - ./bin/end2end_integration || ( echo "^^^ +++" && false ) - ./tools/integration/revocation_test.sh plugins: *scion-run-hooks artifact_paths: *scion-run-artifact-paths @@ -161,7 +161,7 @@ steps: - ./scion.sh run - tools/await-connectivity - echo "--- run tests" - - ./bin/end2end_integration -d --attempts=3 || ( echo "^^^ +++" && false ) + - ./bin/end2end_integration -d || ( echo "^^^ +++" && false ) plugins: *scion-run-hooks artifact_paths: *scion-run-artifact-paths timeout_in_minutes: 15 diff --git a/tools/await-connectivity b/tools/await-connectivity index e0876f1509..9438ffeaf2 100755 --- a/tools/await-connectivity +++ b/tools/await-connectivity @@ -88,12 +88,12 @@ main() { local noncores=$(sed -n '/Non-core/,${s/^- //p}' gen/as_list.yml) for i in $(seq 1 "$QUIET"); do - check_connectivity "$cores" "$noncores" > /dev/null && return 0 + check_connectivity "$cores" "$noncores" > /dev/null && exit 0 sleep 1 done for i in $(seq "$QUIET" $((TIMEOUT-1))); do echo "Check after ${i}s" - check_connectivity "$cores" "$noncores" && return 0 + check_connectivity "$cores" "$noncores" && exit 0 sleep 1 done echo "Check after ${TIMEOUT}s" @@ -101,6 +101,3 @@ main() { } main "$@" - -# that is not enough. Down segment registrations don't seem to happen fast. -sleep 10 From 66f2f2931d9dcc31dbb5e41c47b622aa20d727ae Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Tue, 17 Sep 2024 09:47:47 +0200 Subject: [PATCH 4/7] xhack-disable --- WORKSPACE | 4 ++-- control/cmd/control/BUILD.bazel | 1 + control/cmd/control/main.go | 3 +++ gateway/cmd/gateway/BUILD.bazel | 1 + gateway/cmd/gateway/main.go | 3 +++ private/xhack/BUILD.bazel | 8 +++++++ private/xhack/godebug.go | 37 +++++++++++++++++++++++++++++ scion-pki/cmd/scion-pki/BUILD.bazel | 1 + scion-pki/cmd/scion-pki/main.go | 3 +++ 9 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 private/xhack/BUILD.bazel create mode 100644 private/xhack/godebug.go diff --git a/WORKSPACE b/WORKSPACE index d1f70c41ee..636f11a85b 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -59,7 +59,7 @@ go_rules_dependencies() go_register_toolchains( nogo = "@//:nogo", - version = "1.23.0", + version = "1.23.1", ) # Gazelle @@ -265,7 +265,7 @@ load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies") rules_js_dependencies() -load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains") +load("@rules_nodejs//nodejs:repositories.bzl", "nodejs_register_toolchains") nodejs_register_toolchains( name = "nodejs", diff --git a/control/cmd/control/BUILD.bazel b/control/cmd/control/BUILD.bazel index 9bf133cb52..ce0a29d960 100644 --- a/control/cmd/control/BUILD.bazel +++ b/control/cmd/control/BUILD.bazel @@ -68,6 +68,7 @@ go_library( "//private/trust/compat:go_default_library", "//private/trust/grpc:go_default_library", "//private/trust/metrics:go_default_library", + "//private/xhack:go_default_library", "@com_github_go_chi_chi_v5//:go_default_library", "@com_github_go_chi_cors//:go_default_library", "@com_github_grpc_ecosystem_go_grpc_prometheus//:go_default_library", diff --git a/control/cmd/control/main.go b/control/cmd/control/main.go index 78be343ead..331dcb096d 100644 --- a/control/cmd/control/main.go +++ b/control/cmd/control/main.go @@ -94,11 +94,14 @@ import ( "github.com/scionproto/scion/private/trust/compat" trustgrpc "github.com/scionproto/scion/private/trust/grpc" trustmetrics "github.com/scionproto/scion/private/trust/metrics" + "github.com/scionproto/scion/private/xhack" ) var globalCfg config.Config func main() { + xhack.AsynctimerchanOn() + application := launcher.Application{ TOMLConfig: &globalCfg, ShortName: "SCION Control Service", diff --git a/gateway/cmd/gateway/BUILD.bazel b/gateway/cmd/gateway/BUILD.bazel index 07fae88a63..8ce9521985 100644 --- a/gateway/cmd/gateway/BUILD.bazel +++ b/gateway/cmd/gateway/BUILD.bazel @@ -18,6 +18,7 @@ go_library( "//private/app:go_default_library", "//private/app/launcher:go_default_library", "//private/service:go_default_library", + "//private/xhack:go_default_library", "@com_github_go_chi_chi_v5//:go_default_library", "@com_github_go_chi_cors//:go_default_library", "@org_golang_x_sync//errgroup:go_default_library", diff --git a/gateway/cmd/gateway/main.go b/gateway/cmd/gateway/main.go index 5195c516d2..8c6c3400f4 100644 --- a/gateway/cmd/gateway/main.go +++ b/gateway/cmd/gateway/main.go @@ -37,11 +37,14 @@ import ( "github.com/scionproto/scion/private/app" "github.com/scionproto/scion/private/app/launcher" "github.com/scionproto/scion/private/service" + "github.com/scionproto/scion/private/xhack" ) var globalCfg config.Config func main() { + xhack.AsynctimerchanOn() + application := launcher.Application{ TOMLConfig: &globalCfg, ShortName: "SCION IP Gateway", diff --git a/private/xhack/BUILD.bazel b/private/xhack/BUILD.bazel new file mode 100644 index 0000000000..6e00c95097 --- /dev/null +++ b/private/xhack/BUILD.bazel @@ -0,0 +1,8 @@ +load("//tools/lint:go.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["godebug.go"], + importpath = "github.com/scionproto/scion/private/xhack", + visibility = ["//visibility:public"], +) diff --git a/private/xhack/godebug.go b/private/xhack/godebug.go new file mode 100644 index 0000000000..5b86d134f5 --- /dev/null +++ b/private/xhack/godebug.go @@ -0,0 +1,37 @@ +// Copyright 2024 Anapaya Systems +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package xhack contains hacks that are used to work around limitations in the +// standard library or other packages. +package xhack + +import ( + "os" + "strings" +) + +// AsynctimerchanOn enables the asynctimerchan debug option. This option disable +// the new timer behavior that was introduced in Go 1.23 (see +// https://tip.golang.org/doc/go1.23#timer-changes). +// +// The semantical change is not handled well by some of our dependencies. Most +// notably, quic-go (see https://github.com/quic-go/quic-go/pull/4659). +// +// This function should be called at the beginning of the main function of the +// applications that have a dependency (direct or indirect) on quic-go. +func AsynctimerchanOn() { + if d := os.Getenv("GODEBUG"); !strings.Contains(d, "asynctimerchan") { + os.Setenv("GODEBUG", d+",asynctimerchan=1") + } +} diff --git a/scion-pki/cmd/scion-pki/BUILD.bazel b/scion-pki/cmd/scion-pki/BUILD.bazel index a05f4f19fa..5bf10229d1 100644 --- a/scion-pki/cmd/scion-pki/BUILD.bazel +++ b/scion-pki/cmd/scion-pki/BUILD.bazel @@ -20,6 +20,7 @@ go_library( "//pkg/private/serrors:go_default_library", "//private/app:go_default_library", "//private/env:go_default_library", + "//private/xhack:go_default_library", "//scion-pki/certs:go_default_library", "//scion-pki/key:go_default_library", "//scion-pki/testcrypto:go_default_library", diff --git a/scion-pki/cmd/scion-pki/main.go b/scion-pki/cmd/scion-pki/main.go index c64f4afd79..0f0f2b991a 100644 --- a/scion-pki/cmd/scion-pki/main.go +++ b/scion-pki/cmd/scion-pki/main.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/cobra" "github.com/scionproto/scion/private/app" + "github.com/scionproto/scion/private/xhack" "github.com/scionproto/scion/scion-pki/certs" "github.com/scionproto/scion/scion-pki/key" "github.com/scionproto/scion/scion-pki/testcrypto" @@ -35,6 +36,8 @@ type CommandPather interface { } func main() { + xhack.AsynctimerchanOn() + executable := filepath.Base(os.Args[0]) cmd := &cobra.Command{ Use: executable, From ca91e1d4c064a77dbc8ae20dbff97eeebe10de2a Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Tue, 17 Sep 2024 13:16:45 +0200 Subject: [PATCH 5/7] test --- WORKSPACE | 2 +- .../d3flamegraph/D3_FLAME_GRAPH_LICENSE | 201 ++++++++++++++++++ .../pprof/third_party/d3flamegraph/D3_LICENSE | 13 ++ .../src/cmd/vendor/golang.org/x/build/LICENSE | 27 --- .../cmd/vendor/golang.org/x/telemetry/LICENSE | 27 --- .../src/cmd/vendor/golang.org/x/text/LICENSE | 27 --- .../src/cmd/vendor/rsc.io/markdown/LICENSE | 27 --- private/xhack/godebug.go | 11 +- 8 files changed, 218 insertions(+), 117 deletions(-) create mode 100644 licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_FLAME_GRAPH_LICENSE create mode 100644 licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_LICENSE delete mode 100644 licenses/data/go_sdk/src/cmd/vendor/golang.org/x/build/LICENSE delete mode 100644 licenses/data/go_sdk/src/cmd/vendor/golang.org/x/telemetry/LICENSE delete mode 100644 licenses/data/go_sdk/src/cmd/vendor/golang.org/x/text/LICENSE delete mode 100644 licenses/data/go_sdk/src/cmd/vendor/rsc.io/markdown/LICENSE diff --git a/WORKSPACE b/WORKSPACE index 636f11a85b..53b4207e4f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -59,7 +59,7 @@ go_rules_dependencies() go_register_toolchains( nogo = "@//:nogo", - version = "1.23.1", + version = "1.22.7", ) # Gazelle diff --git a/licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_FLAME_GRAPH_LICENSE b/licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_FLAME_GRAPH_LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_FLAME_GRAPH_LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_LICENSE b/licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_LICENSE new file mode 100644 index 0000000000..b0145150fd --- /dev/null +++ b/licenses/data/go_sdk/src/cmd/vendor/github.com/google/pprof/third_party/d3flamegraph/D3_LICENSE @@ -0,0 +1,13 @@ +Copyright 2010-2021 Mike Bostock + +Permission to use, copy, modify, and/or distribute this software for any purpose +with or without fee is hereby granted, provided that the above copyright notice +and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND +FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS +OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER +TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF +THIS SOFTWARE. diff --git a/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/build/LICENSE b/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/build/LICENSE deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/build/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/telemetry/LICENSE b/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/telemetry/LICENSE deleted file mode 100644 index 2a7cf70da6..0000000000 --- a/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/telemetry/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright 2009 The Go Authors. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google LLC nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/text/LICENSE b/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/text/LICENSE deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/licenses/data/go_sdk/src/cmd/vendor/golang.org/x/text/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/licenses/data/go_sdk/src/cmd/vendor/rsc.io/markdown/LICENSE b/licenses/data/go_sdk/src/cmd/vendor/rsc.io/markdown/LICENSE deleted file mode 100644 index 6a66aea5ea..0000000000 --- a/licenses/data/go_sdk/src/cmd/vendor/rsc.io/markdown/LICENSE +++ /dev/null @@ -1,27 +0,0 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are -met: - - * Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above -copyright notice, this list of conditions and the following disclaimer -in the documentation and/or other materials provided with the -distribution. - * Neither the name of Google Inc. nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/private/xhack/godebug.go b/private/xhack/godebug.go index 5b86d134f5..bb0fffcf59 100644 --- a/private/xhack/godebug.go +++ b/private/xhack/godebug.go @@ -16,11 +16,6 @@ // standard library or other packages. package xhack -import ( - "os" - "strings" -) - // AsynctimerchanOn enables the asynctimerchan debug option. This option disable // the new timer behavior that was introduced in Go 1.23 (see // https://tip.golang.org/doc/go1.23#timer-changes). @@ -31,7 +26,7 @@ import ( // This function should be called at the beginning of the main function of the // applications that have a dependency (direct or indirect) on quic-go. func AsynctimerchanOn() { - if d := os.Getenv("GODEBUG"); !strings.Contains(d, "asynctimerchan") { - os.Setenv("GODEBUG", d+",asynctimerchan=1") - } + //FIXME if d := os.Getenv("GODEBUG"); !strings.Contains(d, "asynctimerchan") { + // os.Setenv("GODEBUG", d+",asynctimerchan=1") + //} } From 69208e2d69ed1e6ecdc99393457831dde2b2ecd5 Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Tue, 17 Sep 2024 14:39:34 +0200 Subject: [PATCH 6/7] final3 --- .buildkite/pipeline.yml | 3 --- control/cmd/control/BUILD.bazel | 1 - control/cmd/control/main.go | 3 --- gateway/cmd/gateway/BUILD.bazel | 1 - gateway/cmd/gateway/main.go | 3 --- private/xhack/BUILD.bazel | 8 -------- private/xhack/godebug.go | 32 -------------------------------- scion-pki/cmd/scion-pki/main.go | 3 --- 8 files changed, 54 deletions(-) delete mode 100644 private/xhack/BUILD.bazel delete mode 100644 private/xhack/godebug.go diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index a00e9f7ae5..72c9c14cdb 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -108,7 +108,6 @@ steps: key: e2e steps: - label: "E2E: default :man_in_business_suit_levitating: (scion, ping)" - parallelism: 20 command: - echo "--- build" - make @@ -136,7 +135,6 @@ steps: key: e2e_integration_tests_v2 retry: *automatic-retry - label: "E2E: failing links :man_in_business_suit_levitating:" - parallelism: 20 command: - echo "--- build" - make @@ -152,7 +150,6 @@ steps: key: e2e_revocation_test_v2 retry: *automatic-retry - label: "E2E: default :docker: (ping)" - parallelism: 20 command: - echo "--- build" - make build-dev docker-images diff --git a/control/cmd/control/BUILD.bazel b/control/cmd/control/BUILD.bazel index ce0a29d960..9bf133cb52 100644 --- a/control/cmd/control/BUILD.bazel +++ b/control/cmd/control/BUILD.bazel @@ -68,7 +68,6 @@ go_library( "//private/trust/compat:go_default_library", "//private/trust/grpc:go_default_library", "//private/trust/metrics:go_default_library", - "//private/xhack:go_default_library", "@com_github_go_chi_chi_v5//:go_default_library", "@com_github_go_chi_cors//:go_default_library", "@com_github_grpc_ecosystem_go_grpc_prometheus//:go_default_library", diff --git a/control/cmd/control/main.go b/control/cmd/control/main.go index 331dcb096d..78be343ead 100644 --- a/control/cmd/control/main.go +++ b/control/cmd/control/main.go @@ -94,14 +94,11 @@ import ( "github.com/scionproto/scion/private/trust/compat" trustgrpc "github.com/scionproto/scion/private/trust/grpc" trustmetrics "github.com/scionproto/scion/private/trust/metrics" - "github.com/scionproto/scion/private/xhack" ) var globalCfg config.Config func main() { - xhack.AsynctimerchanOn() - application := launcher.Application{ TOMLConfig: &globalCfg, ShortName: "SCION Control Service", diff --git a/gateway/cmd/gateway/BUILD.bazel b/gateway/cmd/gateway/BUILD.bazel index 8ce9521985..07fae88a63 100644 --- a/gateway/cmd/gateway/BUILD.bazel +++ b/gateway/cmd/gateway/BUILD.bazel @@ -18,7 +18,6 @@ go_library( "//private/app:go_default_library", "//private/app/launcher:go_default_library", "//private/service:go_default_library", - "//private/xhack:go_default_library", "@com_github_go_chi_chi_v5//:go_default_library", "@com_github_go_chi_cors//:go_default_library", "@org_golang_x_sync//errgroup:go_default_library", diff --git a/gateway/cmd/gateway/main.go b/gateway/cmd/gateway/main.go index 8c6c3400f4..5195c516d2 100644 --- a/gateway/cmd/gateway/main.go +++ b/gateway/cmd/gateway/main.go @@ -37,14 +37,11 @@ import ( "github.com/scionproto/scion/private/app" "github.com/scionproto/scion/private/app/launcher" "github.com/scionproto/scion/private/service" - "github.com/scionproto/scion/private/xhack" ) var globalCfg config.Config func main() { - xhack.AsynctimerchanOn() - application := launcher.Application{ TOMLConfig: &globalCfg, ShortName: "SCION IP Gateway", diff --git a/private/xhack/BUILD.bazel b/private/xhack/BUILD.bazel deleted file mode 100644 index 6e00c95097..0000000000 --- a/private/xhack/BUILD.bazel +++ /dev/null @@ -1,8 +0,0 @@ -load("//tools/lint:go.bzl", "go_library") - -go_library( - name = "go_default_library", - srcs = ["godebug.go"], - importpath = "github.com/scionproto/scion/private/xhack", - visibility = ["//visibility:public"], -) diff --git a/private/xhack/godebug.go b/private/xhack/godebug.go deleted file mode 100644 index bb0fffcf59..0000000000 --- a/private/xhack/godebug.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 Anapaya Systems -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Package xhack contains hacks that are used to work around limitations in the -// standard library or other packages. -package xhack - -// AsynctimerchanOn enables the asynctimerchan debug option. This option disable -// the new timer behavior that was introduced in Go 1.23 (see -// https://tip.golang.org/doc/go1.23#timer-changes). -// -// The semantical change is not handled well by some of our dependencies. Most -// notably, quic-go (see https://github.com/quic-go/quic-go/pull/4659). -// -// This function should be called at the beginning of the main function of the -// applications that have a dependency (direct or indirect) on quic-go. -func AsynctimerchanOn() { - //FIXME if d := os.Getenv("GODEBUG"); !strings.Contains(d, "asynctimerchan") { - // os.Setenv("GODEBUG", d+",asynctimerchan=1") - //} -} diff --git a/scion-pki/cmd/scion-pki/main.go b/scion-pki/cmd/scion-pki/main.go index 0f0f2b991a..c64f4afd79 100644 --- a/scion-pki/cmd/scion-pki/main.go +++ b/scion-pki/cmd/scion-pki/main.go @@ -23,7 +23,6 @@ import ( "github.com/spf13/cobra" "github.com/scionproto/scion/private/app" - "github.com/scionproto/scion/private/xhack" "github.com/scionproto/scion/scion-pki/certs" "github.com/scionproto/scion/scion-pki/key" "github.com/scionproto/scion/scion-pki/testcrypto" @@ -36,8 +35,6 @@ type CommandPather interface { } func main() { - xhack.AsynctimerchanOn() - executable := filepath.Base(os.Args[0]) cmd := &cobra.Command{ Use: executable, From 3366bc5fea3fd6c6a5605b006098aab95e18ecd7 Mon Sep 17 00:00:00 2001 From: Dominik Roos Date: Tue, 17 Sep 2024 17:53:41 +0200 Subject: [PATCH 7/7] fix-builkd --- scion-pki/cmd/scion-pki/BUILD.bazel | 1 - 1 file changed, 1 deletion(-) diff --git a/scion-pki/cmd/scion-pki/BUILD.bazel b/scion-pki/cmd/scion-pki/BUILD.bazel index 5bf10229d1..a05f4f19fa 100644 --- a/scion-pki/cmd/scion-pki/BUILD.bazel +++ b/scion-pki/cmd/scion-pki/BUILD.bazel @@ -20,7 +20,6 @@ go_library( "//pkg/private/serrors:go_default_library", "//private/app:go_default_library", "//private/env:go_default_library", - "//private/xhack:go_default_library", "//scion-pki/certs:go_default_library", "//scion-pki/key:go_default_library", "//scion-pki/testcrypto:go_default_library",