Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fortio for openSUSE:Factory checked in at 2023-05-03 12:57:18 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fortio (Old) and /work/SRC/openSUSE:Factory/.fortio.new.1533 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fortio" Wed May 3 12:57:18 2023 rev:38 rq:1084156 version:1.54.3 Changes: -------- --- /work/SRC/openSUSE:Factory/fortio/fortio.changes 2023-04-14 13:14:01.451888482 +0200 +++ /work/SRC/openSUSE:Factory/.fortio.new.1533/fortio.changes 2023-05-03 12:57:30.391913315 +0200 @@ -1,0 +2,13 @@ +Wed May 03 04:44:21 UTC 2023 - ka...@b1-systems.de + +- Update to version 1.54.3: + * Go 1.20.4 (#755) + * Bump github/codeql-action from 2.3.0 to 2.3.2 (#754) + * Bump fortio.org/scli from 1.3.1 to 1.4.0 (#753) + * Bump github/codeql-action from 2.2.12 to 2.3.0 (#752) + * remove non idiomatic use of new() and use recomended var buf + bytes.Buffer instead of pointer/new (#751) + * Bump actions/checkout from 3.5.0 to 3.5.2 (#750) + * Bump github/codeql-action from 2.2.11 to 2.2.12 (#749) + +------------------------------------------------------------------- Old: ---- fortio-1.54.2.obscpio New: ---- fortio-1.54.3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fortio.spec ++++++ --- /var/tmp/diff_new_pack.5Zqloj/_old 2023-05-03 12:57:31.091917429 +0200 +++ /var/tmp/diff_new_pack.5Zqloj/_new 2023-05-03 12:57:31.095917452 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: fortio -Version: 1.54.2 +Version: 1.54.3 Release: 0 Summary: Load testing library, command line tool, advanced echo server and web UI License: Apache-2.0 ++++++ _service ++++++ --- /var/tmp/diff_new_pack.5Zqloj/_old 2023-05-03 12:57:31.131917663 +0200 +++ /var/tmp/diff_new_pack.5Zqloj/_new 2023-05-03 12:57:31.135917687 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/fortio/fortio</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.54.2</param> + <param name="revision">v1.54.3</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.5Zqloj/_old 2023-05-03 12:57:31.151917781 +0200 +++ /var/tmp/diff_new_pack.5Zqloj/_new 2023-05-03 12:57:31.155917804 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/fortio/fortio</param> - <param name="changesrevision">42273f0ee8694a35a90f6e192f61e0c17da9b874</param></service></servicedata> + <param name="changesrevision">c6665d10f24572d219ed90c65e011a4f8ffdc8d3</param></service></servicedata> (No newline at EOF) ++++++ fortio-1.54.2.obscpio -> fortio-1.54.3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/.circleci/config.yml new/fortio-1.54.3/.circleci/config.yml --- old/fortio-1.54.2/.circleci/config.yml 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/.circleci/config.yml 2023-05-03 03:33:32.000000000 +0200 @@ -8,7 +8,7 @@ &defaultEnv docker: # specify the version - - image: docker.io/fortio/fortio.build:v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 + - image: docker.io/fortio/fortio.build:v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 working_directory: /build/fortio jobs: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/.github/workflows/codeql-analysis.yml new/fortio-1.54.3/.github/workflows/codeql-analysis.yml --- old/fortio-1.54.2/.github/workflows/codeql-analysis.yml 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/.github/workflows/codeql-analysis.yml 2023-05-03 03:33:32.000000000 +0200 @@ -40,11 +40,11 @@ steps: - name: Checkout repository - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # pin@v3 + uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # pin@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@d186a2a36cc67bfa1b860e6170d37fb9634742c7 # pin@v2 + uses: github/codeql-action/init@f3feb00acb00f31a6f60280e6ace9ca31d91c76a # pin@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -55,7 +55,7 @@ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@d186a2a36cc67bfa1b860e6170d37fb9634742c7 # pin@v2 + uses: github/codeql-action/autobuild@f3feb00acb00f31a6f60280e6ace9ca31d91c76a # pin@v2 # â¹ï¸ Command-line programs to run using the OS shell. # ð https://git.io/JvXDl @@ -66,4 +66,4 @@ # make bootstrap # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@d186a2a36cc67bfa1b860e6170d37fb9634742c7 # pin@v2 + uses: github/codeql-action/analyze@f3feb00acb00f31a6f60280e6ace9ca31d91c76a # pin@v2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/.github/workflows/main.yml new/fortio-1.54.3/.github/workflows/main.yml --- old/fortio-1.54.2/.github/workflows/main.yml 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/.github/workflows/main.yml 2023-05-03 03:33:32.000000000 +0200 @@ -22,7 +22,7 @@ # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # pin@v3 + - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # pin@v3 - name: Set up QEMU uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 # pin@v2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/.github/workflows/manual-build.yml new/fortio-1.54.3/.github/workflows/manual-build.yml --- old/fortio-1.54.2/.github/workflows/manual-build.yml 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/.github/workflows/manual-build.yml 2023-05-03 03:33:32.000000000 +0200 @@ -21,7 +21,7 @@ run: | echo "tag is ${{ github.event.inputs.tag }}" - - uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # pin@v3 + - uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # pin@v3 with: ref: ${{ github.event.inputs.tag }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/Dockerfile new/fortio-1.54.3/Dockerfile --- old/fortio-1.54.2/Dockerfile 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/Dockerfile 2023-05-03 03:33:32.000000000 +0200 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 as build +FROM docker.io/fortio/fortio.build:v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 as build WORKDIR /build COPY --chown=build:build . fortio ARG MODE=install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/Dockerfile.build new/fortio-1.54.3/Dockerfile.build --- old/fortio-1.54.2/Dockerfile.build 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/Dockerfile.build 2023-05-03 03:33:32.000000000 +0200 @@ -1,5 +1,5 @@ # Dependencies and linters for build: -FROM golang:1.20.3 +FROM golang:1.20.4@sha256:6dd5c5f8936d7d4487802fb10a77f31b1776740be0fc17ada1acb74ac958f7be # Need gcc for -race test (and some linters though those work with CGO_ENABLED=0) RUN apt-get -y update && \ apt-get --no-install-recommends -y upgrade && \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/Dockerfile.echosrv new/fortio-1.54.3/Dockerfile.echosrv --- old/fortio-1.54.2/Dockerfile.echosrv 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/Dockerfile.echosrv 2023-05-03 03:33:32.000000000 +0200 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 as build +FROM docker.io/fortio/fortio.build:v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 as build WORKDIR /build COPY . fortio RUN make -C fortio official-build-version BUILD_DIR=/build OFFICIAL_TARGET=fortio.org/fortio/echosrv diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/Dockerfile.fcurl new/fortio-1.54.3/Dockerfile.fcurl --- old/fortio-1.54.2/Dockerfile.fcurl 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/Dockerfile.fcurl 2023-05-03 03:33:32.000000000 +0200 @@ -1,5 +1,5 @@ # Build the binaries in larger image -FROM docker.io/fortio/fortio.build:v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 as build +FROM docker.io/fortio/fortio.build:v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 as build WORKDIR /build COPY . fortio RUN make -C fortio official-build-version BUILD_DIR=/build OFFICIAL_TARGET=fortio.org/fortio/fcurl diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/Makefile new/fortio-1.54.3/Makefile --- old/fortio-1.54.2/Makefile 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/Makefile 2023-05-03 03:33:32.000000000 +0200 @@ -7,7 +7,7 @@ IMAGES=echosrv fcurl # plus the combo image / Dockerfile without ext. DOCKER_PREFIX := docker.io/fortio/fortio -BUILD_IMAGE_TAG := v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 +BUILD_IMAGE_TAG := v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 BUILDX_PLATFORMS := linux/amd64,linux/arm64,linux/ppc64le,linux/s390x BUILDX_POSTFIX := ifeq '$(shell echo $(BUILDX_PLATFORMS) | awk -F "," "{print NF-1}")' '0' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/README.md new/fortio-1.54.3/README.md --- old/fortio-1.54.2/README.md 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/README.md 2023-05-03 03:33:32.000000000 +0200 @@ -1,4 +1,4 @@ -<!-- 1.54.2 --> +<!-- 1.54.3 --> # Fortio [](https://github.com/avelino/awesome-go#networking) @@ -60,13 +60,13 @@ The [releases](https://github.com/fortio/fortio/releases) page has binaries for many OS/architecture combinations (see assets): ```shell -curl -L https://github.com/fortio/fortio/releases/download/v1.54.2/fortio-linux_amd64-1.54.2.tgz \ +curl -L https://github.com/fortio/fortio/releases/download/v1.54.3/fortio-linux_amd64-1.54.3.tgz \ | sudo tar -C / -xvzpf - # or the debian package -wget https://github.com/fortio/fortio/releases/download/v1.54.2/fortio_1.54.2_amd64.deb -dpkg -i fortio_1.54.2_amd64.deb +wget https://github.com/fortio/fortio/releases/download/v1.54.3/fortio_1.54.3_amd64.deb +dpkg -i fortio_1.54.3_amd64.deb # or the rpm -rpm -i https://github.com/fortio/fortio/releases/download/v1.54.2/fortio-1.54.2-1.x86_64.rpm +rpm -i https://github.com/fortio/fortio/releases/download/v1.54.3/fortio-1.54.3-1.x86_64.rpm # and more, see assets in release page ``` @@ -76,7 +76,7 @@ brew install fortio ``` -On Windows, download https://github.com/fortio/fortio/releases/download/v1.54.2/fortio_win_1.54.2.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: +On Windows, download https://github.com/fortio/fortio/releases/download/v1.54.3/fortio_win_1.54.3.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: ``` fortio.exe server ``` @@ -127,7 +127,7 @@ <!-- use release/updateFlags.sh to update this section --> <pre> <!-- USAGE_START --> -ΦοÏÏίο 1.54.2 usage: +ΦοÏÏίο 1.54.3 usage: fortio command [flags] target where command is one of: load (load testing), server (starts ui, rest api, http-echo, redirect, proxies, tcp-echo, udp-echo and grpc ping servers), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/SECURITY.md new/fortio-1.54.3/SECURITY.md --- old/fortio-1.54.2/SECURITY.md 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/SECURITY.md 2023-05-03 03:33:32.000000000 +0200 @@ -10,3 +10,4 @@ ## Reporting a Vulnerability Please open in Issue or contact the main author directly at ldemailly at gmail +or techs_product...@icloud.com diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/Webtest.sh new/fortio-1.54.3/Webtest.sh --- old/fortio-1.54.2/Webtest.sh 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/Webtest.sh 2023-05-03 03:33:32.000000000 +0200 @@ -140,7 +140,7 @@ PPROF_URL="$BASE_URL/debug/pprof/heap?debug=1" $CURL "$PPROF_URL" | grep -i TotalAlloc # should find this in memory profile # creating dummy container to hold a volume for test certs due to remote docker bind mount limitation. -DOCKERCURLID=$(docker run -d -v $TEST_CERT_VOL --net host --name $DOCKERSECVOLNAME docker.io/fortio/fortio.build:v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 sleep 120) +DOCKERCURLID=$(docker run -d -v $TEST_CERT_VOL --net host --name $DOCKERSECVOLNAME docker.io/fortio/fortio.build:v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 sleep 120) # while we have something with actual curl binary do # Test for h2c upgrade (#562) docker exec $DOCKERSECVOLNAME /usr/bin/curl -v --http2 -m 10 -d foo42 http://localhost:8080/debug | tee >(cat 1>&2) | grep foo42 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/fhttp/http_client.go new/fortio-1.54.3/fhttp/http_client.go --- old/fortio-1.54.2/fhttp/http_client.go 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/fhttp/http_client.go 2023-05-03 03:33:32.000000000 +0200 @@ -447,8 +447,8 @@ // (where we don't care about the data and only the stats) // Deprecated: use StreamFetch instead. func (c *Client) Fetch(ctx context.Context) (int, []byte, int) { - buf := &bytes.Buffer{} - c.dataWriter = buf + var buf bytes.Buffer + c.dataWriter = &buf status, _, _ := c.StreamFetch(ctx) return status, buf.Bytes(), 0 } @@ -647,8 +647,8 @@ // To be used only for single fetches or when performance doesn't matter as the client is closed at the end. // Deprecated: use StreamURL instead. func FetchURL(url string) (int, []byte) { - w := &bytes.Buffer{} - code := StreamURL(url, w) + var w bytes.Buffer + code := StreamURL(url, &w) return code, w.Bytes() } @@ -665,8 +665,8 @@ // To be used only for single fetches or when performance doesn't matter as the client is closed at the end. // Deprecated: use StreamFetch instead. func Fetch(httpOptions *HTTPOptions) (int, []byte) { - w := &bytes.Buffer{} - httpOptions.DataWriter = w + var w bytes.Buffer + httpOptions.DataWriter = &w return StreamFetch(httpOptions), w.Bytes() } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/fhttp/http_test.go new/fortio-1.54.3/fhttp/http_test.go --- old/fortio-1.54.2/fhttp/http_test.go 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/fhttp/http_test.go 2023-05-03 03:33:32.000000000 +0200 @@ -885,7 +885,7 @@ } continue } - buf := new(bytes.Buffer) + var buf bytes.Buffer // A Buffer needs no initialization. https://pkg.go.dev/bytes#Buffer buf.ReadFrom(body) payload := buf.Bytes() if !bytes.Equal(payload, test.payload) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/go.mod new/fortio-1.54.3/go.mod --- old/fortio-1.54.2/go.mod 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/go.mod 2023-05-03 03:33:32.000000000 +0200 @@ -7,7 +7,7 @@ fortio.org/cli v1.1.0 fortio.org/dflag v1.5.2 fortio.org/log v1.3.0 - fortio.org/scli v1.3.1 + fortio.org/scli v1.4.0 fortio.org/version v1.0.2 github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.3.0 @@ -28,7 +28,7 @@ require ( fortio.org/sets v1.0.3 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect - golang.org/x/exp v0.0.0-20230321023759-10a507213a29 // indirect + golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 // indirect golang.org/x/sys v0.7.0 // indirect golang.org/x/text v0.9.0 // indirect google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/go.sum new/fortio-1.54.3/go.sum --- old/fortio-1.54.2/go.sum 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/go.sum 2023-05-03 03:33:32.000000000 +0200 @@ -6,8 +6,8 @@ fortio.org/dflag v1.5.2/go.mod h1:ppb/A8u+KKg+qUUYZNYuvRnXuVb8IsdHb/XGzsmjkN8= fortio.org/log v1.3.0 h1:bESPvuQGKejw7rrx41Sg3GoF+tsrB7oC08PxBs5/AM0= fortio.org/log v1.3.0/go.mod h1:u/8/2lyczXq52aT5Nw6reD+3cR6m/EbS2jBiIYhgiTU= -fortio.org/scli v1.3.1 h1:tQb46yH0djAokwXqguVUkp8C01LuCtURGJYLodvesvI= -fortio.org/scli v1.3.1/go.mod h1:3Cnfp8mCj7TQSz97Y1oqA0GzLcFK8D9btfam4alE9B0= +fortio.org/scli v1.4.0 h1:hWULZt2eCuN9NMGX9pFMubMY/lNAxFWnNfwxPn2pztE= +fortio.org/scli v1.4.0/go.mod h1:wj7RDObUezKJkPCLHuNb6ktrnRhUYOLCkMhnFhhsfxA= fortio.org/sets v1.0.3 h1:HzewdGjH69YmyW06yzplL35lGr+X4OcqQt0qS6jbaO4= fortio.org/sets v1.0.3/go.mod h1:QZVj0r6KP/ZD9ebySW9SgxVNy/NjghUfyHW9NN+WU+4= fortio.org/version v1.0.2 h1:8NwxdX58aoeKx7T5xAPO0xlUu1Hpk42nRz5s6e6eKZ0= @@ -21,8 +21,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29 h1:ooxPy7fPvB4kwsA2h+iBNHkAbp/4JxTSwCmvdjEYmug= -golang.org/x/exp v0.0.0-20230321023759-10a507213a29/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 h1:5llv2sWeaMSnA3w2kS57ouQQ4pudlXrR0dCgw51QK9o= +golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/periodic/periodic_test.go new/fortio-1.54.3/periodic/periodic_test.go --- old/fortio-1.54.2/periodic/periodic_test.go 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/periodic/periodic_test.go 2023-05-03 03:33:32.000000000 +0200 @@ -556,7 +556,7 @@ t.Errorf("getJitter < 5 got %v instead of expected 0", d) } sum := 0. - for i := 0; i < 100; i++ { + for i := 0; i < 1000; i++ { d = getJitter(6) a := math.Abs(float64(d)) // only valid values are -1, 0, 1 @@ -566,8 +566,10 @@ // make sure we don't always get 0 sum += a } - if sum <= 60 { - t.Errorf("getJitter 6 got %v sum of abs value instead of expected > 60 at -1/+1", sum) + // in theory should be 2/3 of the time 1 or -1 so 666 but we'll be happy with >= 600 + t.Logf("sum of abs value %v", sum) + if sum < 600 { + t.Errorf("getJitter 6 got %v sum of abs value instead of expected >= 600 at -1/+1", sum) } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/release/Dockerfile.in new/fortio-1.54.3/release/Dockerfile.in --- old/fortio-1.54.2/release/Dockerfile.in 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/release/Dockerfile.in 2023-05-03 03:33:32.000000000 +0200 @@ -1,5 +1,5 @@ # Concatenated after ../Dockerfile to create the tgz -FROM docker.io/fortio/fortio.build:v57@sha256:12761387fdf486cad3b1b5c0a4a0ef44c6aaec4bf09e78f0027e60bc4d67d478 as stage +FROM docker.io/fortio/fortio.build:v58@sha256:84ab73744546c1b27e2f08143e2c080114c4f1864f760b9fca3908683259d3c4 as stage ARG archs="amd64 arm64 ppc64le s390x" ENV archs=${archs} # Build image defaults to build user, switch back to root for diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.54.2/stats/stats.go new/fortio-1.54.3/stats/stats.go --- old/fortio-1.54.2/stats/stats.go 2023-04-14 01:56:52.000000000 +0200 +++ new/fortio-1.54.3/stats/stats.go 2023-05-03 03:33:32.000000000 +0200 @@ -202,14 +202,15 @@ // NewHistogram creates a new histogram (sets up the buckets). // Divider value can not be zero, otherwise returns zero. func NewHistogram(offset float64, divider float64) *Histogram { - h := new(Histogram) - h.Offset = offset if divider == 0 { return nil } - h.Divider = divider - h.Hdata = make([]int32, numBuckets) - return h + h := Histogram{ + Offset: offset, + Divider: divider, + Hdata: make([]int32, numBuckets), + } + return &h } // Val2Bucket values are kept in two different structure ++++++ fortio.obsinfo ++++++ --- /var/tmp/diff_new_pack.5Zqloj/_old 2023-05-03 12:57:31.323918791 +0200 +++ /var/tmp/diff_new_pack.5Zqloj/_new 2023-05-03 12:57:31.327918815 +0200 @@ -1,5 +1,5 @@ name: fortio -version: 1.54.2 -mtime: 1681430212 -commit: 42273f0ee8694a35a90f6e192f61e0c17da9b874 +version: 1.54.3 +mtime: 1683077612 +commit: c6665d10f24572d219ed90c65e011a4f8ffdc8d3 ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/fortio.org/scli/README.md new/vendor/fortio.org/scli/README.md --- old/vendor/fortio.org/scli/README.md 2023-04-14 08:47:35.000000000 +0200 +++ new/vendor/fortio.org/scli/README.md 2023-05-03 06:44:22.000000000 +0200 @@ -15,15 +15,29 @@ ```bash % go run . -config-dir ./config -config-port 8888 a b -15:45:20 I updater.go:47> Configmap flag value watching on ./config -15:45:20 I updater.go:156> updating loglevel to "verbose\n" -15:45:20 I logger.go:183> Log level is now 1 Verbose (was 2 Info) -15:45:20 I updater.go:97> Now watching . and config -15:45:20 I updater.go:162> Background thread watching config now running -15:45:20 Fortio 1.50.1 config server listening on tcp [::]:8888 -15:45:20 Starting sampleServer dev go1.19.6 arm64 darwin +14:50:54 I updater.go:47> Configmap flag value watching on ./config +14:50:54 I updater.go:156> updating loglevel to "verbose\n" +14:50:54 I logger.go:183> Log level is now 1 Verbose (was 2 Info) +14:50:54 I updater.go:97> Now watching . and config +14:50:54 I updater.go:162> Background thread watching config now running +14:50:54 I scli.go:81> Fortio scli dev dflag config server listening on [::]:8888 +14:50:54 I scli.go:90> Starting sampleServer dev go1.20.3 arm64 darwin +14:50:55 I main.go:16> FD count 1s after start : 16 # When visiting the UI -15:46:20 ListFlags: GET / HTTP/1.1 [::1]:52406 () "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" +14:51:06 ListFlags: GET / HTTP/1.1 [::1]:64731 () ... +# ... +14:51:15 I main.go:18> FD count 20s later : 16 +14:51:15 I main.go:21> FD count stability check: 16 +14:51:15 I main.go:21> FD count stability check: 16 +14:51:15 I main.go:21> FD count stability check: 16 +14:51:15 I main.go:21> FD count stability check: 16 +14:51:15 I main.go:21> FD count stability check: 16 +14:51:15 I main.go:27> Running until interrupted (ctrl-c)... +# pkill -int sampleServer +14:51:20 W scli.go:101> Interrupt received. +14:51:20 I main.go:29> Normal exit +% echo $? +0 ``` With the flags ui on http://localhost:8888 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/fortio.org/scli/scli.go new/vendor/fortio.org/scli/scli.go --- old/vendor/fortio.org/scli/scli.go 2023-04-14 08:47:35.000000000 +0200 +++ new/vendor/fortio.org/scli/scli.go 2023-05-03 06:44:22.000000000 +0200 @@ -17,6 +17,8 @@ "flag" "net" "net/http" + "os" + "os/signal" "strings" "time" @@ -88,3 +90,13 @@ log.Infof("Starting %s %s", cli.ProgramName, cli.LongVersion) return hasStartedServer } + +// UntilInterrupted runs forever or until interrupted (ctrl-c or shutdown signal (kill -INT)). +func UntilInterrupted() { + // listen for interrupt signal + c := make(chan os.Signal, 1) + signal.Notify(c, os.Interrupt) + // Block until a signal is received. + <-c + log.Warnf("Interrupt received.") +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/exp/slices/slices.go new/vendor/golang.org/x/exp/slices/slices.go --- old/vendor/golang.org/x/exp/slices/slices.go 2023-04-14 08:47:35.000000000 +0200 +++ new/vendor/golang.org/x/exp/slices/slices.go 2023-05-03 06:44:22.000000000 +0200 @@ -104,8 +104,8 @@ // Index returns the index of the first occurrence of v in s, // or -1 if not present. func Index[E comparable](s []E, v E) int { - for i, vs := range s { - if v == vs { + for i := range s { + if v == s[i] { return i } } @@ -115,8 +115,8 @@ // IndexFunc returns the first index i satisfying f(s[i]), // or -1 if none do. func IndexFunc[E any](s []E, f func(E) bool) int { - for i, v := range s { - if f(v) { + for i := range s { + if f(s[i]) { return i } } @@ -207,12 +207,12 @@ return s } i := 1 - last := s[0] - for _, v := range s[1:] { - if v != last { - s[i] = v + for k := 1; k < len(s); k++ { + if s[k] != s[k-1] { + if i != k { + s[i] = s[k] + } i++ - last = v } } return s[:i] @@ -224,12 +224,12 @@ return s } i := 1 - last := s[0] - for _, v := range s[1:] { - if !eq(v, last) { - s[i] = v + for k := 1; k < len(s); k++ { + if !eq(s[k], s[k-1]) { + if i != k { + s[i] = s[k] + } i++ - last = v } } return s[:i] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/golang.org/x/exp/slices/sort.go new/vendor/golang.org/x/exp/slices/sort.go --- old/vendor/golang.org/x/exp/slices/sort.go 2023-04-14 08:47:35.000000000 +0200 +++ new/vendor/golang.org/x/exp/slices/sort.go 2023-05-03 06:44:22.000000000 +0200 @@ -81,10 +81,12 @@ } // BinarySearchFunc works like BinarySearch, but uses a custom comparison -// function. The slice must be sorted in increasing order, where "increasing" is -// defined by cmp. cmp(a, b) is expected to return an integer comparing the two -// parameters: 0 if a == b, a negative number if a < b and a positive number if -// a > b. +// function. The slice must be sorted in increasing order, where "increasing" +// is defined by cmp. cmp should return 0 if the slice element matches +// the target, a negative number if the slice element precedes the target, +// or a positive number if the slice element follows the target. +// cmp must implement the same ordering as the slice, such that if +// cmp(a, t) < 0 and cmp(b, t) >= 0, then a must precede b in the slice. func BinarySearchFunc[E, T any](x []E, target T, cmp func(E, T) int) (int, bool) { n := len(x) // Define cmp(x[-1], target) < 0 and cmp(x[n], target) >= 0 . diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2023-04-14 08:47:36.000000000 +0200 +++ new/vendor/modules.txt 2023-05-03 06:44:22.000000000 +0200 @@ -13,7 +13,7 @@ # fortio.org/log v1.3.0 ## explicit; go 1.18 fortio.org/log -# fortio.org/scli v1.3.1 +# fortio.org/scli v1.4.0 ## explicit; go 1.18 fortio.org/scli # fortio.org/sets v1.0.3 @@ -36,8 +36,8 @@ # github.com/google/uuid v1.3.0 ## explicit github.com/google/uuid -# golang.org/x/exp v0.0.0-20230321023759-10a507213a29 -## explicit; go 1.18 +# golang.org/x/exp v0.0.0-20230425010034-47ecfdc1ba53 +## explicit; go 1.20 golang.org/x/exp/constraints golang.org/x/exp/slices # golang.org/x/net v0.9.0