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-10-02 20:05:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fortio (Old) and /work/SRC/openSUSE:Factory/.fortio.new.28202 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fortio" Mon Oct 2 20:05:06 2023 rev:51 rq:1114312 version:1.60.2 Changes: -------- --- /work/SRC/openSUSE:Factory/fortio/fortio.changes 2023-09-15 22:11:07.233246149 +0200 +++ /work/SRC/openSUSE:Factory/.fortio.new.28202/fortio.changes 2023-10-02 20:06:35.927090075 +0200 @@ -1,0 +2,9 @@ +Fri Sep 29 08:45:54 UTC 2023 - ka...@b1-systems.de + +- Update to version 1.60.2: + * add new -pprof on flag to explictly allow pprof, off by + default. (#845) + * Bump google.golang.org/grpc from 1.58.1 to 1.58.2 (#842) + * Bump actions/checkout from 4.0.0 to 4.1.0 (#843) + +------------------------------------------------------------------- Old: ---- fortio-1.60.1.obscpio New: ---- fortio-1.60.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fortio.spec ++++++ --- /var/tmp/diff_new_pack.I7Hmlc/_old 2023-10-02 20:06:37.315139993 +0200 +++ /var/tmp/diff_new_pack.I7Hmlc/_new 2023-10-02 20:06:37.315139993 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: fortio -Version: 1.60.1 +Version: 1.60.2 Release: 0 Summary: Load testing library, command line tool, advanced echo server and web UI License: Apache-2.0 @@ -42,8 +42,7 @@ Fortio also includes a set of server side features (similar to httpbin) to help debugging and testing: request echo back including headers, adding latency or error codes with a probability distribution, tcp echoing, tcp proxying, http fan out/scatter and gather proxy server, GRPC echo/health in addition to http, etc... %prep -%setup -q -%setup -q -T -D -a 1 +%autosetup -p1 -a 1 %build go build \ ++++++ _service ++++++ --- /var/tmp/diff_new_pack.I7Hmlc/_old 2023-10-02 20:06:37.347141143 +0200 +++ /var/tmp/diff_new_pack.I7Hmlc/_new 2023-10-02 20:06:37.351141287 +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.60.1</param> + <param name="revision">v1.60.2</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.I7Hmlc/_old 2023-10-02 20:06:37.367141863 +0200 +++ /var/tmp/diff_new_pack.I7Hmlc/_new 2023-10-02 20:06:37.371142007 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/fortio/fortio</param> - <param name="changesrevision">dcad10f29dab524eeb5a94c3037a63d04f101310</param></service></servicedata> + <param name="changesrevision">058ac0fa4dcba33d908aed396104c3fdfae06a8e</param></service></servicedata> (No newline at EOF) ++++++ fortio-1.60.1.obscpio -> fortio-1.60.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/.github/workflows/codecov.yml new/fortio-1.60.2/.github/workflows/codecov.yml --- old/fortio-1.60.1/.github/workflows/codecov.yml 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/.github/workflows/codecov.yml 2023-09-29 02:40:21.000000000 +0200 @@ -11,7 +11,7 @@ build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # pin@v3 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # pin@v3 with: fetch-depth: 2 - name: Set up Go diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/.github/workflows/codeql-analysis.yml new/fortio-1.60.2/.github/workflows/codeql-analysis.yml --- old/fortio-1.60.1/.github/workflows/codeql-analysis.yml 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/.github/workflows/codeql-analysis.yml 2023-09-29 02:40:21.000000000 +0200 @@ -40,7 +40,7 @@ steps: - name: Checkout repository - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # pin@v3 + uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # pin@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/.github/workflows/main.yml new/fortio-1.60.2/.github/workflows/main.yml --- old/fortio-1.60.1/.github/workflows/main.yml 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/.github/workflows/main.yml 2023-09-29 02:40:21.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@3df4ab11eba7bda6032a0b82a6bb43b11571feac # pin@v3 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # pin@v3 - name: Set up QEMU uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # pin@v2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/.github/workflows/manual-build.yml new/fortio-1.60.2/.github/workflows/manual-build.yml --- old/fortio-1.60.1/.github/workflows/manual-build.yml 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/.github/workflows/manual-build.yml 2023-09-29 02:40:21.000000000 +0200 @@ -21,7 +21,7 @@ run: | echo "tag is ${{ github.event.inputs.tag }}" - - uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # pin@v3 + - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # pin@v3 with: ref: ${{ github.event.inputs.tag }} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/README.md new/fortio-1.60.2/README.md --- old/fortio-1.60.1/README.md 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/README.md 2023-09-29 02:40:21.000000000 +0200 @@ -1,4 +1,4 @@ -<!-- 1.60.1 --> +<!-- 1.60.2 --> # 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.60.1/fortio-linux_amd64-1.60.1.tgz \ +curl -L https://github.com/fortio/fortio/releases/download/v1.60.2/fortio-linux_amd64-1.60.2.tgz \ | sudo tar -C / -xvzpf - # or the debian package -wget https://github.com/fortio/fortio/releases/download/v1.60.1/fortio_1.60.1_amd64.deb -dpkg -i fortio_1.60.1_amd64.deb +wget https://github.com/fortio/fortio/releases/download/v1.60.2/fortio_1.60.2_amd64.deb +dpkg -i fortio_1.60.2_amd64.deb # or the rpm -rpm -i https://github.com/fortio/fortio/releases/download/v1.60.1/fortio-1.60.1-1.x86_64.rpm +rpm -i https://github.com/fortio/fortio/releases/download/v1.60.2/fortio-1.60.2-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.60.1/fortio_win_1.60.1.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.60.2/fortio_win_1.60.2.zip and extract `fortio.exe` to any location, then using the Windows Command Prompt: ``` fortio.exe server ``` @@ -128,7 +128,7 @@ <!-- use release/updateFlags.sh to update this section --> <pre> <!-- USAGE_START --> -ΦοÏÏίο 1.60.1 usage: +ΦοÏÏίο 1.60.2 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), @@ -305,6 +305,8 @@ than -maxpayloadsizekb. Setting this switches http to POST. -ping grpc load test: use ping instead of health + -pprof + Enable pprof http endpoint in the Web UI handler server -profile file write .cpu and .mem profiles to file -proxy-all-headers diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/Webtest.sh new/fortio-1.60.2/Webtest.sh --- old/fortio-1.60.1/Webtest.sh 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/Webtest.sh 2023-09-29 02:40:21.000000000 +0200 @@ -44,7 +44,7 @@ exit 1 fi -DOCKERID=$(docker run -d --ulimit nofile=$FILE_LIMIT --net host --name $DOCKERNAME fortio/fortio:webtest server -ui-path $FORTIO_UI_PREFIX -loglevel $LOGLEVEL -maxpayloadsizekb $MAXPAYLOAD -timeout=$TIMEOUT) +DOCKERID=$(docker run -d --ulimit nofile=$FILE_LIMIT --net host --name $DOCKERNAME fortio/fortio:webtest server -ui-path $FORTIO_UI_PREFIX -loglevel $LOGLEVEL -maxpayloadsizekb $MAXPAYLOAD -timeout=$TIMEOUT -pprof) function cleanup { set +e # errors are ok during cleanup # docker logs "$DOCKERID" # uncomment to debug @@ -157,7 +157,8 @@ docker stop "$DOCKERID" docker rm $DOCKERNAME DOCKERNAME=fortio_report -DOCKERID=$(docker run -d --ulimit nofile=$FILE_LIMIT --name $DOCKERNAME fortio/fortio:webtest report -loglevel $LOGLEVEL) +# Even with pprof the report mode won't have pprof endpoint +DOCKERID=$(docker run -d --ulimit nofile=$FILE_LIMIT --name $DOCKERNAME fortio/fortio:webtest report -loglevel $LOGLEVEL -pprof) docker ps CURL="docker exec $DOCKERNAME $FORTIO_BIN_PATH curl -loglevel $LOGLEVEL" if $CURL "$PPROF_URL" ; then diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/cli/fortio_main.go new/fortio-1.60.2/cli/fortio_main.go --- old/fortio-1.60.1/cli/fortio_main.go 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/cli/fortio_main.go 2023-09-29 02:40:21.000000000 +0200 @@ -179,6 +179,7 @@ accessLogFileFormat = flag.String("access-log-format", "json", "`format` for access log. Supported values: [json, influx]") calcQPS = flag.Bool("calc-qps", false, "Calculate the qps based on number of requests (-n) and duration (-t)") + pprofOn = flag.Bool("pprof", false, "Enable pprof http endpoint in the Web UI handler server") ) // serverArgCheck always returns true after checking arguments length. @@ -251,6 +252,7 @@ } case "server": isServer = serverArgCheck() + tlsOptions := &bincommon.SharedHTTPOptions().TLSOptions if *tcpPortFlag != disabled { fnet.TCPEchoServer("tcp-echo", *tcpPortFlag) } @@ -258,13 +260,23 @@ fnet.UDPEchoServer("udp-echo", *udpPortFlag, *udpAsyncFlag) } if *grpcPortFlag != disabled { - fgrpc.PingServer(*grpcPortFlag, *healthSvcFlag, uint32(*maxStreamsFlag), &bincommon.SharedHTTPOptions().TLSOptions) + fgrpc.PingServer(*grpcPortFlag, *healthSvcFlag, uint32(*maxStreamsFlag), tlsOptions) } if *redirectFlag != disabled { fhttp.RedirectToHTTPS(*redirectFlag) } if *echoPortFlag != disabled { - if !ui.Serve(hook, baseURL, *echoPortFlag, *echoDbgPathFlag, *uiPathFlag, *dataDirFlag, percList()) { + uiCfg := ui.ServerConfig{ + BaseURL: baseURL, + Port: *echoPortFlag, + DebugPath: *echoDbgPathFlag, + UIPath: *uiPathFlag, + DataDir: *dataDirFlag, + PProfOn: *pprofOn, + PercentileList: percList(), + TLSOptions: tlsOptions, + } + if !ui.Serve(hook, &uiCfg) { os.Exit(1) // error already logged } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/fhttp/http_server.go new/fortio-1.60.2/fhttp/http_server.go --- old/fortio-1.60.1/fhttp/http_server.go 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/fhttp/http_server.go 2023-09-29 02:40:21.000000000 +0200 @@ -486,6 +486,7 @@ // SetupPPROF add pprof to the mux (mirror the init() of http pprof). func SetupPPROF(mux *http.ServeMux) { + log.Warnf("pprof endpoints enabled on /debug/pprof/*") mux.HandleFunc("/debug/pprof/", LogAndCall("pprof:index", pprof.Index)) mux.HandleFunc("/debug/pprof/cmdline", LogAndCall("pprof:cmdline", pprof.Cmdline)) mux.HandleFunc("/debug/pprof/profile", LogAndCall("pprof:profile", pprof.Profile)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/go.mod new/fortio-1.60.2/go.mod --- old/fortio-1.60.1/go.mod 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/go.mod 2023-09-29 02:40:21.000000000 +0200 @@ -14,7 +14,7 @@ github.com/golang/protobuf v1.5.3 github.com/google/uuid v1.3.1 golang.org/x/net v0.15.0 - google.golang.org/grpc v1.58.1 + google.golang.org/grpc v1.58.2 ) // Local dev of dependencies changes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/go.sum new/fortio-1.60.2/go.sum --- old/fortio-1.60.1/go.sum 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/go.sum 2023-09-29 02:40:21.000000000 +0200 @@ -37,8 +37,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/rpc v0.0.0-20230913181813-007df8e322eb h1:Isk1sSH7bovx8Rti2wZK0UZF6oraBDK74uoyLEEVFN0= google.golang.org/genproto/googleapis/rpc v0.0.0-20230913181813-007df8e322eb/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= -google.golang.org/grpc v1.58.1 h1:OL+Vz23DTtrrldqHK49FUOPHyY75rvFqJfXC84NYW58= -google.golang.org/grpc v1.58.1/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= +google.golang.org/grpc v1.58.2 h1:SXUpjxeVF3FKrTYQI4f4KvbGD5u2xccdYdurwowix5I= +google.golang.org/grpc v1.58.2/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fortio-1.60.1/ui/uihandler.go new/fortio-1.60.2/ui/uihandler.go --- old/fortio-1.60.1/ui/uihandler.go 2023-09-14 22:05:42.000000000 +0200 +++ new/fortio-1.60.2/ui/uihandler.go 2023-09-29 02:40:21.000000000 +0200 @@ -644,29 +644,38 @@ return strings.TrimSuffix(debugPath, "/") + "/metrics" } +type ServerConfig struct { + BaseURL, Port, DebugPath, UIPath, DataDir string + PProfOn bool + PercentileList []float64 + TLSOptions *fhttp.TLSOptions +} + // Serve starts the fhttp.Serve() plus the UI server on the given port // and paths (empty disables the feature). uiPath should end with / // (be a 'directory' path). Returns true if server is started successfully. -func Serve(hook bincommon.FortioHook, baseurl, port, debugpath, uipath, datadir string, percentileList []float64) bool { +func Serve(hook bincommon.FortioHook, cfg *ServerConfig) bool { startTime = time.Now() - // Kinda ugly that we get most params past in but we get the tls stuff from flags directly, - // it avoids making an already too long list of string params longer. probably should make a FortioConfig struct. - mux, addr := fhttp.ServeTLS(port, debugpath, &bincommon.SharedHTTPOptions().TLSOptions) + mux, addr := fhttp.ServeTLS(cfg.Port, cfg.DebugPath, cfg.TLSOptions) if addr == nil { return false // Error already logged } - if uipath == "" { + if cfg.UIPath == "" { return true } - fhttp.SetupPPROF(mux) - uiPath = uipath + if cfg.PProfOn { + fhttp.SetupPPROF(mux) // This now logs a warning as it's a potential risk + } else { + log.LogVf("Not serving pprof endpoint.") + } + uiPath = cfg.UIPath if uiPath[len(uiPath)-1] != '/' { log.Warnf("Adding missing trailing / to UI path '%s'", uiPath) uiPath += "/" } - debugPath = debugpath - echoPath = fhttp.EchoDebugPath(debugpath) - metricsPath = getMetricsPath(debugpath) + debugPath = cfg.DebugPath + echoPath = fhttp.EchoDebugPath(debugPath) + metricsPath = getMetricsPath(debugPath) mux.HandleFunc(uiPath, Handler) fetchPath = uiPath + fetchURI // For backward compatibility with http:// only fetcher @@ -676,8 +685,8 @@ fhttp.CheckConnectionClosedHeader = true // needed for proxy to avoid errors // New REST apis (includes the data/ handler) - rapi.AddHandlers(hook, mux, baseurl, uiPath, datadir) - rapi.DefaultPercentileList = percentileList + rapi.AddHandlers(hook, mux, cfg.BaseURL, uiPath, cfg.DataDir) + rapi.DefaultPercentileList = cfg.PercentileList logoPath = version.Short() + "/static/img/fortio-logo-gradient-no-bg.svg" chartJSPath = version.Short() + "/static/js/Chart.min.js" @@ -719,7 +728,7 @@ debugPath, echoPath, dflagsPath, metricsPath) mux.HandleFunc(metricsPath, metrics.Exporter) - urlHostPort = fnet.NormalizeHostPort(port, addr) + urlHostPort = fnet.NormalizeHostPort(cfg.Port, addr) uiMsg := "\t UI started - visit:\n\t\t" if strings.Contains(urlHostPort, "-unix-socket=") { uiMsg += fmt.Sprintf("fortio curl %s http://localhost%s", urlHostPort, uiPath) ++++++ fortio.obsinfo ++++++ --- /var/tmp/diff_new_pack.I7Hmlc/_old 2023-10-02 20:06:37.535147905 +0200 +++ /var/tmp/diff_new_pack.I7Hmlc/_new 2023-10-02 20:06:37.535147905 +0200 @@ -1,5 +1,5 @@ name: fortio -version: 1.60.1 -mtime: 1694721942 -commit: dcad10f29dab524eeb5a94c3037a63d04f101310 +version: 1.60.2 +mtime: 1695948021 +commit: 058ac0fa4dcba33d908aed396104c3fdfae06a8e ++++++ vendor.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/google.golang.org/grpc/version.go new/vendor/google.golang.org/grpc/version.go --- old/vendor/google.golang.org/grpc/version.go 2023-09-15 11:29:33.000000000 +0200 +++ new/vendor/google.golang.org/grpc/version.go 2023-09-29 10:45:59.000000000 +0200 @@ -19,4 +19,4 @@ package grpc // Version is the current grpc version. -const Version = "1.58.1" +const Version = "1.58.2" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt --- old/vendor/modules.txt 2023-09-15 11:29:33.000000000 +0200 +++ new/vendor/modules.txt 2023-09-29 10:45:59.000000000 +0200 @@ -76,7 +76,7 @@ # google.golang.org/genproto/googleapis/rpc v0.0.0-20230913181813-007df8e322eb ## explicit; go 1.19 google.golang.org/genproto/googleapis/rpc/status -# google.golang.org/grpc v1.58.1 +# google.golang.org/grpc v1.58.2 ## explicit; go 1.19 google.golang.org/grpc google.golang.org/grpc/attributes