network-quality / goresponsiveness

A draft-ietf-ippm-responsiveness client in Go.
GNU General Public License v2.0
132 stars 10 forks source link

Trouble building #fe989eb from Dockerfile #68

Closed richb-hanover closed 8 months ago

richb-hanover commented 8 months ago

Using commit #fe989eb (from 9 Jan 2024) on macOS 12.6.7, I attempted to build the Dockerfile. I got the error below. (It happened twice: the first time, I pulled in a bunch of new container stuff, and saw the error. I re-ran, and this was the output.)

What other diagnostic information could I provide? Thanks.

?1 goresponsiveness-1 % docker build -t goresp .
[+] Building 2.3s (10/10) FINISHED                                                                         docker:desktop-linux
 => [internal] load build definition from Dockerfile                                                                       0.0s
 => => transferring dockerfile: 744B                                                                                       0.0s
 => [internal] load .dockerignore                                                                                          0.0s
 => => transferring context: 2B                                                                                            0.0s
 => [internal] load metadata for docker.io/library/golang:1.18.3-alpine3.16                                                0.3s
 => [1/6] FROM docker.io/library/golang:1.18.3-alpine3.16@sha256:7cc62574fcf9c5fb87ad42a9789d5539a6a085971d58ee75dd2ee146  0.0s
 => [internal] load build context                                                                                          0.0s
 => => transferring context: 36.88kB                                                                                       0.0s
 => CACHED [2/6] RUN mkdir /goresponsiveness                                                                               0.0s
 => CACHED [3/6] ADD . /goresponsiveness                                                                                   0.0s
 => CACHED [4/6] WORKDIR /goresponsiveness                                                                                 0.0s
 => CACHED [5/6] RUN go mod download                                                                                       0.0s
 => ERROR [6/6] RUN go build -o networkQuality networkQuality.go                                                           1.9s
------
 > [6/6] RUN go build -o networkQuality networkQuality.go:
1.876 # command-line-arguments
1.876 ./networkQuality.go:177:7: undefined: flag.BoolFunc
------
Dockerfile:16
--------------------
  14 |
  15 |     RUN go mod download
  16 | >>> RUN go build -o networkQuality networkQuality.go
  17 |
  18 |     # `docker run` invokes the networkQuality binary that was just built
--------------------
ERROR: failed to solve: process "/bin/sh -c go build -o networkQuality networkQuality.go" did not complete successfully: exit code: 2
?1 goresponsiveness-1 %
hawkinsw commented 8 months ago

@richb-hanover I am terribly sorry! I will fix this issue tonight. Again, I am very sorry!

richb-hanover commented 8 months ago

No apology necessary. Thanks for looking into it.

hawkinsw commented 8 months ago

@richb-hanover Let me know if that latest fix helps!

(I am reopening because github auto closes when it sees a Fixes line in a commit.)

richb-hanover commented 8 months ago

I confirm that commit 65c625a allowed me to build and run goresp from the Docker container.

Here are the results of using Wi-Fi through my 75mbps/75mbps fiber connection to my ISP. Anything I should report? (Note that download never reached stability, and the first time, gave 0.0 mbps.)

√ goresponsiveness-1 % docker run --rm goresp --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
01-14-2024 02:19:46 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Warning: Throughput stability could not be reached. Making the test 15 seconds longer to calculate speculative RPM results.
Results:
========
Download:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 0.000 Mbps (0.000 MBps), using 0 parallel connections.
    RPM: 567 (P90)
    RPM: 1750 (Single-Sided 5% Trimmed Mean)
========
Upload:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 70.327 Mbps (8.791 MBps), using 16 parallel connections.
    RPM: 569 (P90)
    RPM: 1575 (Single-Sided 5% Trimmed Mean)
========
Final RPM: 556 (P90)
Final RPM: 1816 (Single-Sided 5% Trimmed Mean)
√ goresponsiveness-1 % docker run --rm goresp --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
01-14-2024 02:23:23 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Warning: Throughput stability could not be reached. Making the test 15 seconds longer to calculate speculative RPM results.
Warning: Throughput stability could not be reached. Making the test 15 seconds longer to calculate speculative RPM results.
Results:
========
Download:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 69.598 Mbps (8.700 MBps), using 16 parallel connections.
    RPM: 65 (P90)
    RPM: 321 (Single-Sided 5% Trimmed Mean)
========
Upload:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 62.108 Mbps (7.764 MBps), using 16 parallel connections.
    RPM: 81 (P90)
    RPM: 1276 (Single-Sided 5% Trimmed Mean)
========
Final RPM: 69 (P90)
Final RPM: 1181 (Single-Sided 5% Trimmed Mean)
√ goresponsiveness-1 % docker run --rm goresp --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
01-14-2024 02:24:43 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Warning: Throughput stability could not be reached. Making the test 15 seconds longer to calculate speculative RPM results.
Results:
========
Download:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 73.732 Mbps (9.217 MBps), using 16 parallel connections.
    RPM: 77 (P90)
    RPM: 271 (Single-Sided 5% Trimmed Mean)
========
Upload:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 53.984 Mbps (6.748 MBps), using 16 parallel connections.
    RPM: 596 (P90)
    RPM: 2677 (Single-Sided 5% Trimmed Mean)
========
Final RPM: 149 (P90)
Final RPM: 2601 (Single-Sided 5% Trimmed Mean)
√ goresponsiveness-1 %
hawkinsw commented 8 months ago

Thanks for the report! I will close this issue, if that is okay with you!?

I would imagine that there was a transient issue during the first test. Are you seeing that type of result consistently? If so, having the --debug output would be fantastic (you could add --extended-stats as well, if you are adventurous!).

The second two results look like they are appropriately using nearly the entire available bandwidth. As I have seen the test work, it will not usually use the entire available bandwidth.

Thank you for taking the time to report the earlier build issue -- it prompted me to add some additional CI/CD.

richb-hanover commented 8 months ago

Here's the full debug/extended stats run. It looks a little better...

https://pastebin.com/Tvsh2aGR

And a second run with extended stats:

√ goresponsiveness-1 % docker run --rm goresp --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config  --extended-stats
01-14-2024 05:07:58 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Results:
========
Download:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 69.601 Mbps (8.700 MBps), using 5 parallel connections.
    Extended Statistics:
        Maximum Path MTU:      1500
        Maximum Send MSS:      1448
        Maximum Recv MSS:      1448
        Total Retransmissions: 0
        Total Reorderings:     15
        Average RTT:           189.2
    RPM: 274 (P90)
    RPM: 875 (Single-Sided 5% Trimmed Mean)
========
Upload:
    Note: Test did not run to stability, these results are estimates.
    Throughput: 63.824 Mbps (7.978 MBps), using 13 parallel connections.
    Extended Statistics:
        Maximum Path MTU:      1500
        Maximum Send MSS:      1448
        Maximum Recv MSS:      1448
        Total Retransmissions: 0
        Total Reorderings:     39
        Average RTT:           368.53846153846155
    RPM: 443 (P90)
    RPM: 3244 (Single-Sided 5% Trimmed Mean)
========
Final RPM: 282 (P90)
Final RPM: 2328 (Single-Sided 5% Trimmed Mean)
√ goresponsive
hawkinsw commented 8 months ago

Thank you! I will look asap!

On Sun, Jan 14, 2024 at 12:08 AM Rich Brown @.***> wrote:

Here's the full debug/extended stats run. It looks a little better...

https://pastebin.com/Tvsh2aGR

— Reply to this email directly, view it on GitHub https://github.com/network-quality/goresponsiveness/issues/68#issuecomment-1890849585, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCP2CT4WAWQRF5C2XKBSH3YONR4JAVCNFSM6AAAAABBTSNBH6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQOJQHA2DSNJYGU . You are receiving this because you modified the open/close state.Message ID: @.***>

richb-hanover commented 8 months ago

re: Adding CI/CD. Yes - we have to take one insurmountable hurdle at a time :-)