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-02-18 17:12:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fortio (Old)
 and      /work/SRC/openSUSE:Factory/.fortio.new.22824 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fortio"

Sat Feb 18 17:12:42 2023 rev:30 rq:1066525 version:1.50.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/fortio/fortio.changes    2023-02-14 
16:48:11.991426613 +0100
+++ /work/SRC/openSUSE:Factory/.fortio.new.22824/fortio.changes 2023-02-18 
17:12:51.855674968 +0100
@@ -1,0 +2,8 @@
+Sat Feb 18 08:06:56 UTC 2023 - ka...@b1-systems.de
+
+- Update to version 1.50.1:
+  * use go 1.19.6 (#711)
+  * Bump golang.org/x/net from 0.6.0 to 0.7.0 (#710)
+  * Bump fortio.org/log from 1.2.0 to 1.2.2 (#709)
+
+-------------------------------------------------------------------

Old:
----
  fortio-1.50.0.tar.gz

New:
----
  fortio-1.50.1.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fortio.spec ++++++
--- /var/tmp/diff_new_pack.d69scc/_old  2023-02-18 17:12:54.451691359 +0100
+++ /var/tmp/diff_new_pack.d69scc/_new  2023-02-18 17:12:54.455691384 +0100
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           fortio
-Version:        1.50.0
+Version:        1.50.1
 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.d69scc/_old  2023-02-18 17:12:54.495691637 +0100
+++ /var/tmp/diff_new_pack.d69scc/_new  2023-02-18 17:12:54.499691662 +0100
@@ -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.50.0</param>
+    <param name="revision">v1.50.1</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
     <param name="versionrewrite-pattern">v(.*)</param>
@@ -17,7 +17,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">fortio-1.50.0.tar.gz</param>
+    <param name="archive">fortio-1.50.1.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.d69scc/_old  2023-02-18 17:12:54.523691814 +0100
+++ /var/tmp/diff_new_pack.d69scc/_new  2023-02-18 17:12:54.527691839 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/fortio/fortio</param>
-              <param 
name="changesrevision">d1d19b6d862c57ef2b5394e21d954d1df6d4fe70</param></service></servicedata>
+              <param 
name="changesrevision">f7ca38b31431e8ae81e2ab343e6fef71dcdfae6c</param></service></servicedata>
 (No newline at EOF)
 

++++++ fortio-1.50.0.tar.gz -> fortio-1.50.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/.circleci/config.yml 
new/fortio-1.50.1/.circleci/config.yml
--- old/fortio-1.50.0/.circleci/config.yml      2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/.circleci/config.yml      2023-02-17 21:43:27.000000000 
+0100
@@ -8,7 +8,7 @@
   &defaultEnv
   docker:
     # specify the version
-    - image: 
docker.io/fortio/fortio.build:v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
+    - image: 
docker.io/fortio/fortio.build:v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
   working_directory: /build/fortio
 
 jobs:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/.golangci.yml 
new/fortio-1.50.1/.golangci.yml
--- old/fortio-1.50.0/.golangci.yml     2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/.golangci.yml     2023-02-17 21:43:27.000000000 +0100
@@ -82,6 +82,8 @@
 
 linters:
   disable:
+    # bad ones:
+    - musttag
     # Deprecated ones:
     - scopelint
     - golint
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/Dockerfile new/fortio-1.50.1/Dockerfile
--- old/fortio-1.50.0/Dockerfile        2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/Dockerfile        2023-02-17 21:43:27.000000000 +0100
@@ -1,7 +1,7 @@
 # Build the binaries in larger image
-FROM 
docker.io/fortio/fortio.build:v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
 as build
+FROM 
docker.io/fortio/fortio.build:v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
 as build
 WORKDIR /build
-COPY . fortio
+COPY --chown=build:build . fortio
 ARG MODE=install
 # We moved a lot of the logic into the Makefile so it can be reused in brew
 # but that also couples the 2, this expects to find binaries in the right 
place etc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/Dockerfile.build 
new/fortio-1.50.1/Dockerfile.build
--- old/fortio-1.50.0/Dockerfile.build  2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/Dockerfile.build  2023-02-17 21:43:27.000000000 +0100
@@ -1,5 +1,5 @@
 # Dependencies and linters for build:
-FROM golang:1.19.5
+FROM golang:1.19.6
 # 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 && \
@@ -18,7 +18,7 @@
 RUN set -x; if [ x"$(dpkg --print-architecture)" != x"s390x" ]; then \
     curl -fsSL "https://download.docker.com/linux/debian/gpg"; | apt-key add; \
     echo "deb [arch=$(dpkg --print-architecture)] 
https://download.docker.com/linux/debian bullseye stable" > 
/etc/apt/sources.list.d/docker.list && \
-    apt-get -y update && apt-get install --no-install-recommends -y docker-ce; 
\
+    apt-get -y update && apt-get install --no-install-recommends -y docker-ce 
docker-buildx-plugin; \
     fi
 
 # govulncheck
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/Dockerfile.echosrv 
new/fortio-1.50.1/Dockerfile.echosrv
--- old/fortio-1.50.0/Dockerfile.echosrv        2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/Dockerfile.echosrv        2023-02-17 21:43:27.000000000 
+0100
@@ -1,5 +1,5 @@
 # Build the binaries in larger image
-FROM 
docker.io/fortio/fortio.build:v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
 as build
+FROM 
docker.io/fortio/fortio.build:v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
 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.50.0/Dockerfile.fcurl 
new/fortio-1.50.1/Dockerfile.fcurl
--- old/fortio-1.50.0/Dockerfile.fcurl  2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/Dockerfile.fcurl  2023-02-17 21:43:27.000000000 +0100
@@ -1,5 +1,5 @@
 # Build the binaries in larger image
-FROM 
docker.io/fortio/fortio.build:v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
 as build
+FROM 
docker.io/fortio/fortio.build:v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
 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.50.0/Makefile new/fortio-1.50.1/Makefile
--- old/fortio-1.50.0/Makefile  2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/Makefile  2023-02-17 21:43:27.000000000 +0100
@@ -7,7 +7,8 @@
 IMAGES=echosrv fcurl # plus the combo image / Dockerfile without ext.
 
 DOCKER_PREFIX := docker.io/fortio/fortio
-BUILD_IMAGE_TAG := 
v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
+# Note to self: skip 55 (was built and push with unecessarily changing git 
config), so 56 is next
+BUILD_IMAGE_TAG := 
v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
 BUILDX_PLATFORMS := linux/amd64,linux/arm64,linux/ppc64le,linux/s390x
 BUILDX_POSTFIX :=
 ifeq '$(shell echo $(BUILDX_PLATFORMS) | awk -F "," "{print NF-1}")' '0'
@@ -78,7 +79,7 @@
 
 # This really also tests the release process and build on windows,mac,linux
 # and the docker images, not just "web" (ui) stuff that it also exercises.
-release-test:
+release-test: docker-version
        ./Webtest.sh
 
 # old name for release-test
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/README.md new/fortio-1.50.1/README.md
--- old/fortio-1.50.0/README.md 2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/README.md 2023-02-17 21:43:27.000000000 +0100
@@ -58,13 +58,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.50.0/fortio-linux_amd64-1.50.0.tgz
 \
+curl -L 
https://github.com/fortio/fortio/releases/download/v1.50.1/fortio-linux_amd64-1.50.1.tgz
 \
  | sudo tar -C / -xvzpf -
 # or the debian package
-wget 
https://github.com/fortio/fortio/releases/download/v1.50.0/fortio_1.50.0_amd64.deb
-dpkg -i fortio_1.50.0_amd64.deb
+wget 
https://github.com/fortio/fortio/releases/download/v1.50.1/fortio_1.50.1_amd64.deb
+dpkg -i fortio_1.50.1_amd64.deb
 # or the rpm
-rpm -i 
https://github.com/fortio/fortio/releases/download/v1.50.0/fortio-1.50.0-1.x86_64.rpm
+rpm -i 
https://github.com/fortio/fortio/releases/download/v1.50.1/fortio-1.50.1-1.x86_64.rpm
 # and more, see assets in release page
 ```
 
@@ -74,7 +74,7 @@
 brew install fortio
 ```
 
-On Windows, download 
https://github.com/fortio/fortio/releases/download/v1.50.0/fortio_win_1.50.0.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.50.1/fortio_win_1.50.1.zip
 and extract `fortio.exe` to any location, then using the Windows Command 
Prompt:
 ```
 fortio.exe server
 ```
@@ -123,7 +123,7 @@
 <details>
 <!-- use release/updateFlags.sh to update this section -->
 <pre>
-Φορτίο 1.50.0 usage:
+Φορτίο 1.50.1 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.50.0/Webtest.sh new/fortio-1.50.1/Webtest.sh
--- old/fortio-1.50.0/Webtest.sh        2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/Webtest.sh        2023-02-17 21:43:27.000000000 +0100
@@ -141,7 +141,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:v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
 sleep 120)
+DOCKERCURLID=$(docker run -d -v $TEST_CERT_VOL --net host --name 
$DOCKERSECVOLNAME 
docker.io/fortio/fortio.build:v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
 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.50.0/fhttp/http_server.go 
new/fortio-1.50.1/fhttp/http_server.go
--- old/fortio-1.50.0/fhttp/http_server.go      2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/fhttp/http_server.go      2023-02-17 21:43:27.000000000 
+0100
@@ -15,6 +15,7 @@
 package fhttp // import "fortio.org/fortio/fhttp"
 
 // pprof import to get /debug/pprof endpoints on a mux through SetupPPROF.
+
 import (
        "bytes"
        "crypto/tls"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/go.mod new/fortio-1.50.1/go.mod
--- old/fortio-1.50.0/go.mod    2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/go.mod    2023-02-17 21:43:27.000000000 +0100
@@ -5,19 +5,19 @@
 require (
        fortio.org/assert v1.1.3
        fortio.org/dflag v1.4.1
-       fortio.org/log v1.2.0
+       fortio.org/log v1.2.2
        fortio.org/version v1.0.2
        github.com/golang/protobuf v1.5.2
        github.com/google/uuid v1.3.0
-       golang.org/x/net v0.6.0
+       golang.org/x/net v0.7.0
        google.golang.org/grpc v1.53.0
 )
 
 require (
        github.com/fsnotify/fsnotify v1.6.0 // indirect
-       golang.org/x/exp v0.0.0-20230212135524-a684f29349b6 // indirect
+       golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb // indirect
        golang.org/x/sys v0.5.0 // indirect
        golang.org/x/text v0.7.0 // indirect
-       google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc // 
indirect
+       google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // 
indirect
        google.golang.org/protobuf v1.28.1 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/go.sum new/fortio-1.50.1/go.sum
--- old/fortio-1.50.0/go.sum    2023-02-13 22:13:17.000000000 +0100
+++ new/fortio-1.50.1/go.sum    2023-02-17 21:43:27.000000000 +0100
@@ -2,8 +2,8 @@
 fortio.org/assert v1.1.3/go.mod h1:039mG+/iYDPO8Ibx8TrNuJCm2T2SuhwRI3uL9nHTTls=
 fortio.org/dflag v1.4.1 h1:WDhlHMh3yrQFrvspyN5YEyr8WATdKM2dUJlTxsjCDtI=
 fortio.org/dflag v1.4.1/go.mod h1:pTEF7UEj6sHP9rj9gZG2GyhAGrrPJE4c6zOO7zB2yyI=
-fortio.org/log v1.2.0 h1:neeowTa+D4Wpi/t+nCRSXkOEx3V3NNAFcneCtkNCW+0=
-fortio.org/log v1.2.0/go.mod h1:u/8/2lyczXq52aT5Nw6reD+3cR6m/EbS2jBiIYhgiTU=
+fortio.org/log v1.2.2 h1:vs42JjNwiqbMbacittZjJE9+oi72Za6aekML9gKmILg=
+fortio.org/log v1.2.2/go.mod h1:u/8/2lyczXq52aT5Nw6reD+3cR6m/EbS2jBiIYhgiTU=
 fortio.org/version v1.0.2 h1:8NwxdX58aoeKx7T5xAPO0xlUu1Hpk42nRz5s6e6eKZ0=
 fortio.org/version v1.0.2/go.mod 
h1:2JQp9Ax+tm6QKiGuzR5nJY63kFeANcgrZ0osoQFDVm0=
 github.com/fsnotify/fsnotify v1.6.0 
h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
@@ -15,18 +15,18 @@
 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-20230212135524-a684f29349b6 
h1:Ic9KukPQ7PegFzHckNiMTQXGgEszA7mY2Fn4ZMtnMbw=
-golang.org/x/exp v0.0.0-20230212135524-a684f29349b6/go.mod 
h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
-golang.org/x/net v0.6.0 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q=
-golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
+golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb 
h1:PaBZQdo+iSDyHT053FjUCgZQ/9uqVwPOcl7KSWhKn6w=
+golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb/go.mod 
h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
+golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g=
+golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
 golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod 
h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU=
 golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo=
 golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc 
h1:ijGwO+0vL2hJt5gaygqP2j6PfflOBrRot0IczKbmtio=
-google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc/go.mod 
h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM=
+google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 
h1:EfLuoKW5WfkgVdDy7dTK8qSbH37AX5mj/MFh+bGPz14=
+google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44/go.mod 
h1:8B0gmkoRebU8ukX6HP+4wrVQUY1+6PkQ44BSyIlflHA=
 google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc=
 google.golang.org/grpc v1.53.0/go.mod 
h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
 google.golang.org/protobuf v1.26.0-rc.1/go.mod 
h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/jrpc/jrpcClient.go 
new/fortio-1.50.1/jrpc/jrpcClient.go
--- old/fortio-1.50.0/jrpc/jrpcClient.go        2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/jrpc/jrpcClient.go        2023-02-17 21:43:27.000000000 
+0100
@@ -23,6 +23,7 @@
 // or struct based in and out. Additionally *URL() variants are for when no 
additional headers or options
 // are needed and the url is just a plain string. If golang supported multiple 
signatures it would be a single
 // method name instead of 8.
+
 import (
        "bytes"
        "context"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/jrpc/jrpcServer.go 
new/fortio-1.50.1/jrpc/jrpcServer.go
--- old/fortio-1.50.0/jrpc/jrpcServer.go        2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/jrpc/jrpcServer.go        2023-02-17 21:43:27.000000000 
+0100
@@ -15,6 +15,7 @@
 package jrpc // import "fortio.org/fortio/jrpc"
 
 // Server side additional code (compared to jrpcClient.go).
+
 import (
        "io"
        "net/http"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fortio-1.50.0/release/Dockerfile.in 
new/fortio-1.50.1/release/Dockerfile.in
--- old/fortio-1.50.0/release/Dockerfile.in     2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/release/Dockerfile.in     2023-02-17 21:43:27.000000000 
+0100
@@ -1,5 +1,5 @@
 # Concatenated after ../Dockerfile to create the tgz
-FROM 
docker.io/fortio/fortio.build:v52@sha256:2a85bd3b97d7eaf1718a3fc7a376d52dbe78f01cd8cb3baee87228ad92adf710
 as stage
+FROM 
docker.io/fortio/fortio.build:v54@sha256:4775038c3ace753978c8dfd99ebbd23607b61eeb0bf6c2bf2901d0485cc1870c
 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.50.0/tcprunner/tcprunner.go 
new/fortio-1.50.1/tcprunner/tcprunner.go
--- old/fortio-1.50.0/tcprunner/tcprunner.go    2023-02-13 22:13:17.000000000 
+0100
+++ new/fortio-1.50.1/tcprunner/tcprunner.go    2023-02-17 21:43:27.000000000 
+0100
@@ -104,7 +104,6 @@
 // GeneratePayload generates a default 24 bytes unique payload for each runner 
thread and message sent
 // when no other payload is set.
 func GeneratePayload(t int, i int64) []byte {
-       //nolint:dupword
        // up to 9999 connections and 999 999 999 999 (999B) request
        s := fmt.Sprintf("Fortio\n%04d\n%012d", t, i) // 6+2+4+12 = 24 bytes
        return []byte(s)

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/fortio.org/log/logger.go 
new/vendor/fortio.org/log/logger.go
--- old/vendor/fortio.org/log/logger.go 2023-02-14 09:37:54.000000000 +0100
+++ new/vendor/fortio.org/log/logger.go 2023-02-18 09:07:00.000000000 +0100
@@ -132,17 +132,24 @@
                names = []string{"loglevel"}
        }
        for _, name := range names {
-               flag.Var(&flagV, name, fmt.Sprintf("logging `level`, one of 
%v", LevelToStrA))
+               flag.Var(&flagV, name, fmt.Sprintf("log `level`, one of %v", 
LevelToStrA))
        }
 }
 
 // --- Start of code/types needed string to level custom flag validation 
section ---
 
-type flagValidation struct{}
+type flagValidation struct {
+       ours bool
+}
 
-var flagV flagValidation
+var flagV = flagValidation{true}
 
 func (f *flagValidation) String() string {
+       // Need to tell if it's our value or the zeroValue the flag package 
creates
+       // to decide whether to print (default ...) or not.
+       if !f.ours {
+               return ""
+       }
        return GetLogLevel().String()
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/frame.go 
new/vendor/golang.org/x/net/http2/frame.go
--- old/vendor/golang.org/x/net/http2/frame.go  2023-02-14 09:37:54.000000000 
+0100
+++ new/vendor/golang.org/x/net/http2/frame.go  2023-02-18 09:07:00.000000000 
+0100
@@ -662,6 +662,15 @@
 // It is the caller's responsibility not to violate the maximum frame size
 // and to not call other Write methods concurrently.
 func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad 
[]byte) error {
+       if err := f.startWriteDataPadded(streamID, endStream, data, pad); err 
!= nil {
+               return err
+       }
+       return f.endWrite()
+}
+
+// startWriteDataPadded is WriteDataPadded, but only writes the frame to the 
Framer's internal buffer.
+// The caller should call endWrite to flush the frame to the underlying writer.
+func (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, 
pad []byte) error {
        if !validStreamID(streamID) && !f.AllowIllegalWrites {
                return errStreamID
        }
@@ -691,7 +700,7 @@
        }
        f.wbuf = append(f.wbuf, data...)
        f.wbuf = append(f.wbuf, pad...)
-       return f.endWrite()
+       return nil
 }
 
 // A SettingsFrame conveys configuration parameters that affect how
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/hpack/hpack.go 
new/vendor/golang.org/x/net/http2/hpack/hpack.go
--- old/vendor/golang.org/x/net/http2/hpack/hpack.go    2023-02-14 
09:37:54.000000000 +0100
+++ new/vendor/golang.org/x/net/http2/hpack/hpack.go    2023-02-18 
09:07:00.000000000 +0100
@@ -359,6 +359,7 @@
 
        var hf HeaderField
        wantStr := d.emitEnabled || it.indexed()
+       var undecodedName undecodedString
        if nameIdx > 0 {
                ihf, ok := d.at(nameIdx)
                if !ok {
@@ -366,15 +367,27 @@
                }
                hf.Name = ihf.Name
        } else {
-               hf.Name, buf, err = d.readString(buf, wantStr)
+               undecodedName, buf, err = d.readString(buf)
                if err != nil {
                        return err
                }
        }
-       hf.Value, buf, err = d.readString(buf, wantStr)
+       undecodedValue, buf, err := d.readString(buf)
        if err != nil {
                return err
        }
+       if wantStr {
+               if nameIdx <= 0 {
+                       hf.Name, err = d.decodeString(undecodedName)
+                       if err != nil {
+                               return err
+                       }
+               }
+               hf.Value, err = d.decodeString(undecodedValue)
+               if err != nil {
+                       return err
+               }
+       }
        d.buf = buf
        if it.indexed() {
                d.dynTab.add(hf)
@@ -459,46 +472,52 @@
        return 0, origP, errNeedMore
 }
 
-// readString decodes an hpack string from p.
+// readString reads an hpack string from p.
 //
-// wantStr is whether s will be used. If false, decompression and
-// []byte->string garbage are skipped if s will be ignored
-// anyway. This does mean that huffman decoding errors for non-indexed
-// strings past the MAX_HEADER_LIST_SIZE are ignored, but the server
-// is returning an error anyway, and because they're not indexed, the error
-// won't affect the decoding state.
-func (d *Decoder) readString(p []byte, wantStr bool) (s string, remain []byte, 
err error) {
+// It returns a reference to the encoded string data to permit deferring 
decode costs
+// until after the caller verifies all data is present.
+func (d *Decoder) readString(p []byte) (u undecodedString, remain []byte, err 
error) {
        if len(p) == 0 {
-               return "", p, errNeedMore
+               return u, p, errNeedMore
        }
        isHuff := p[0]&128 != 0
        strLen, p, err := readVarInt(7, p)
        if err != nil {
-               return "", p, err
+               return u, p, err
        }
        if d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) {
-               return "", nil, ErrStringLength
+               // Returning an error here means Huffman decoding errors
+               // for non-indexed strings past the maximum string length
+               // are ignored, but the server is returning an error anyway
+               // and because the string is not indexed the error will not
+               // affect the decoding state.
+               return u, nil, ErrStringLength
        }
        if uint64(len(p)) < strLen {
-               return "", p, errNeedMore
-       }
-       if !isHuff {
-               if wantStr {
-                       s = string(p[:strLen])
-               }
-               return s, p[strLen:], nil
+               return u, p, errNeedMore
        }
+       u.isHuff = isHuff
+       u.b = p[:strLen]
+       return u, p[strLen:], nil
+}
 
-       if wantStr {
-               buf := bufPool.Get().(*bytes.Buffer)
-               buf.Reset() // don't trust others
-               defer bufPool.Put(buf)
-               if err := huffmanDecode(buf, d.maxStrLen, p[:strLen]); err != 
nil {
-                       buf.Reset()
-                       return "", nil, err
-               }
+type undecodedString struct {
+       isHuff bool
+       b      []byte
+}
+
+func (d *Decoder) decodeString(u undecodedString) (string, error) {
+       if !u.isHuff {
+               return string(u.b), nil
+       }
+       buf := bufPool.Get().(*bytes.Buffer)
+       buf.Reset() // don't trust others
+       var s string
+       err := huffmanDecode(buf, d.maxStrLen, u.b)
+       if err == nil {
                s = buf.String()
-               buf.Reset() // be nice to GC
        }
-       return s, p[strLen:], nil
+       buf.Reset() // be nice to GC
+       bufPool.Put(buf)
+       return s, err
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/net/http2/server.go 
new/vendor/golang.org/x/net/http2/server.go
--- old/vendor/golang.org/x/net/http2/server.go 2023-02-14 09:37:54.000000000 
+0100
+++ new/vendor/golang.org/x/net/http2/server.go 2023-02-18 09:07:00.000000000 
+0100
@@ -843,8 +843,13 @@
 // and then reports when it's done.
 // At most one goroutine can be running writeFrameAsync at a time per
 // serverConn.
-func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest) {
-       err := wr.write.writeFrame(sc)
+func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) {
+       var err error
+       if wd == nil {
+               err = wr.write.writeFrame(sc)
+       } else {
+               err = sc.framer.endWrite()
+       }
        sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err}
 }
 
@@ -1251,9 +1256,16 @@
                sc.writingFrameAsync = false
                err := wr.write.writeFrame(sc)
                sc.wroteFrame(frameWriteResult{wr: wr, err: err})
+       } else if wd, ok := wr.write.(*writeData); ok {
+               // Encode the frame in the serve goroutine, to ensure we don't 
have
+               // any lingering asynchronous references to data passed to 
Write.
+               // See https://go.dev/issue/58446.
+               sc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, 
nil)
+               sc.writingFrameAsync = true
+               go sc.writeFrameAsync(wr, wd)
        } else {
                sc.writingFrameAsync = true
-               go sc.writeFrameAsync(wr)
+               go sc.writeFrameAsync(wr, nil)
        }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2023-02-14 09:37:54.000000000 +0100
+++ new/vendor/modules.txt      2023-02-18 09:07:00.000000000 +0100
@@ -7,7 +7,7 @@
 fortio.org/dflag/configmap
 fortio.org/dflag/dynloglevel
 fortio.org/dflag/endpoint
-# fortio.org/log v1.2.0
+# fortio.org/log v1.2.2
 ## explicit; go 1.18
 fortio.org/log
 # fortio.org/version v1.0.2
@@ -27,10 +27,10 @@
 # github.com/google/uuid v1.3.0
 ## explicit
 github.com/google/uuid
-# golang.org/x/exp v0.0.0-20230212135524-a684f29349b6
+# golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb
 ## explicit; go 1.18
 golang.org/x/exp/constraints
-# golang.org/x/net v0.6.0
+# golang.org/x/net v0.7.0
 ## explicit; go 1.17
 golang.org/x/net/context
 golang.org/x/net/http/httpguts
@@ -51,7 +51,7 @@
 golang.org/x/text/transform
 golang.org/x/text/unicode/bidi
 golang.org/x/text/unicode/norm
-# google.golang.org/genproto v0.0.0-20230209215440-0dfe4f8abfcc
+# google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44
 ## explicit; go 1.19
 google.golang.org/genproto/googleapis/rpc/status
 # google.golang.org/grpc v1.53.0

Reply via email to