network-quality / goresponsiveness

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

Build problems with 2a9feb8 #16

Closed richb-hanover closed 2 years ago

richb-hanover commented 2 years ago

I am having trouble with build https://github.com/network-quality/goresponsiveness/commit/2a9feb82b55481308c0f6aa9d813e9021b0333ef

I ran docker build -t goresp . and got an error note: module requires Go 1.18 Here's the output

...
 => ERROR [6/6] RUN go build -o networkQuality networkQuality.go                                                     1.7s
------
 > [6/6] RUN go build -o networkQuality networkQuality.go:
#10 0.408 # github.com/network-quality/goresponsiveness/utilities
#10 0.408 utilities/utilities.go:82:17: syntax error: unexpected any, expecting ]
#10 0.408 utilities/utilities.go:87:6: missing function body
#10 0.408 utilities/utilities.go:87:10: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:91:6: missing function body
#10 0.408 utilities/utilities.go:91:10: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:95:6: missing function body
#10 0.408 utilities/utilities.go:95:12: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:99:12: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:103:13: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:110:24: syntax error: unexpected [, expecting comma or )
#10 0.408 utilities/utilities.go:95:6: too many errors
#10 0.408 note: module requires Go 1.18
------
executor failed running [/bin/sh -c go build -o networkQuality networkQuality.go]: exit code: 2

Ahah! sez I. So I updated the Dockerfile to use FROM golang:1.18.1-alpine3.15, and it built the container without complaint.

When I ran docker run goresp, I got the following segfault:

√ goresponsiveness-1 % docker run goresp
05-05-2022 10:41:59 UTC Go Responsiveness to mensura.cdn-apple.com:443...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x676cb5]

goroutine 26 [running]:
main.saturate.func1()
    /goresponsiveness/networkQuality.go:248 +0xb5
created by main.saturate
    /goresponsiveness/networkQuality.go:237 +0xf8

What other troubleshooting info could I provide? Many thanks.

moeller0 commented 2 years ago

Similar here on Ubuntu 20LTS after a git pull (and in a completely freshly cloned repository):

moeller@work-horse:~/CODE/TMP/goresponsiveness$ ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config 
05-05-2022 20:04:13 UTC Go Responsiveness to mensura.cdn-apple.com:443...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x676cd5]

goroutine 22 [running]:
main.saturate.func1()
        /home/moeller/CODE/TMP/goresponsiveness/networkQuality.go:248 +0xb5
created by main.saturate
        /home/moeller/CODE/TMP/goresponsiveness/networkQuality.go:237 +0xf8
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x676cd5]

goroutine 21 [running]:
main.saturate.func1()
        /home/moeller/CODE/TMP/goresponsiveness/networkQuality.go:248 +0xb5
created by main.saturate
        /home/moeller/CODE/TMP/goresponsiveness/networkQuality.go:237 +0xf8

on macos 11.6.5 (so too old to run apple's version):

bash-3.2$ ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config 
05-05-2022 20:06:01 UTC Go Responsiveness to mensura.cdn-apple.com:443...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1270ad5]

goroutine 38 [running]:
main.saturate.func1()
    /Users/smoeller/TECH_KRAM/CODE/goresponsiveness/networkQuality.go:248 +0xb5
created by main.saturate
    /Users/smoeller/TECH_KRAM/CODE/goresponsiveness/networkQuality.go:237 +0xf8
bash-3.2$ 
hawkinsw commented 2 years ago

--config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config

@moeller0 Sorry about this! In 7113efcf716b5cce94869a29eff37aee0be10808 there is a fix! Thanks for the feedback!

Will

hawkinsw commented 2 years ago

I am having trouble with build 2a9feb8

I ran docker build -t goresp . and got an error note: module requires Go 1.18 Here's the output

...
 => ERROR [6/6] RUN go build -o networkQuality networkQuality.go                                                     1.7s
------
 > [6/6] RUN go build -o networkQuality networkQuality.go:
#10 0.408 # github.com/network-quality/goresponsiveness/utilities
#10 0.408 utilities/utilities.go:82:17: syntax error: unexpected any, expecting ]
#10 0.408 utilities/utilities.go:87:6: missing function body
#10 0.408 utilities/utilities.go:87:10: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:91:6: missing function body
#10 0.408 utilities/utilities.go:91:10: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:95:6: missing function body
#10 0.408 utilities/utilities.go:95:12: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:99:12: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:103:13: syntax error: unexpected [, expecting (
#10 0.408 utilities/utilities.go:110:24: syntax error: unexpected [, expecting comma or )
#10 0.408 utilities/utilities.go:95:6: too many errors
#10 0.408 note: module requires Go 1.18
------
executor failed running [/bin/sh -c go build -o networkQuality networkQuality.go]: exit code: 2

Ahah! sez I. So I updated the Dockerfile to use FROM golang:1.18.1-alpine3.15, and it built the container without complaint.

When I ran docker run goresp, I got the following segfault:

√ goresponsiveness-1 % docker run goresp
05-05-2022 10:41:59 UTC Go Responsiveness to mensura.cdn-apple.com:443...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x676cb5]

goroutine 26 [running]:
main.saturate.func1()
  /goresponsiveness/networkQuality.go:248 +0xb5
created by main.saturate
  /goresponsiveness/networkQuality.go:237 +0xf8

What other troubleshooting info could I provide? Many thanks.

@richb-hanover Thanks, as well, for the feedback! I hope that the version in 7113efcf716b5cce94869a29eff37aee0be10808 fixes the issue! Just let me know and we can close this issue!

Thanks again for everything!

moeller0 commented 2 years ago

Both Linux and macos now result in working tests. No time right no to scrutinize the results, but the crash seems fixed. Thanks!

moeller0 commented 2 years ago
user@work-horse:~/CODE/goresponsiveness$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
05-06-2022 05:58:56 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  89.624 Mbps ( 11.203 MBps), using 12 parallel connections.
Upload:    26.156 Mbps (  3.270 MBps), using 12 parallel connections.
Total RTTs measured: 25
RPM:  3983

real    0m5.486s
user    0m1.170s
sys     0m1.205s
user@work-horse:~/CODE/goresponsiveness$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
05-06-2022 05:59:16 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  89.890 Mbps ( 11.236 MBps), using 12 parallel connections.
Upload:    26.938 Mbps (  3.367 MBps), using 20 parallel connections.
Total RTTs measured: 25
RPM:  4391

real    0m8.423s
user    0m1.812s
sys     0m1.864s
user@work-horse:~/CODE/goresponsiveness$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
05-06-2022 06:04:13 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  89.718 Mbps ( 11.215 MBps), using 12 parallel connections.
Upload:    26.312 Mbps (  3.289 MBps), using 12 parallel connections.
Total RTTs measured: 25
RPM:  4147

real    0m5.481s
user    0m1.178s
sys     0m1.155s

Timing still seems wrong, with 12 flows per direction and bi-directional the run time should be around 12 seconds, but certainly >= 8ms which it only is occasionally.

hawkinsw commented 2 years ago
user@work-horse:~/CODE/goresponsiveness$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
05-06-2022 05:58:56 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  89.624 Mbps ( 11.203 MBps), using 12 parallel connections.
Upload:    26.156 Mbps (  3.270 MBps), using 12 parallel connections.
Total RTTs measured: 25
RPM:  3983

real    0m5.486s
user    0m1.170s
sys     0m1.205s
user@work-horse:~/CODE/goresponsiveness$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
05-06-2022 05:59:16 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  89.890 Mbps ( 11.236 MBps), using 12 parallel connections.
Upload:    26.938 Mbps (  3.367 MBps), using 20 parallel connections.
Total RTTs measured: 25
RPM:  4391

real    0m8.423s
user    0m1.812s
sys     0m1.864s
user@work-horse:~/CODE/goresponsiveness$ time ./networkQuality --config mensura.cdn-apple.com --port 443 --path /api/v1/gm/config
05-06-2022 06:04:13 UTC Go Responsiveness to mensura.cdn-apple.com:443...
Download:  89.718 Mbps ( 11.215 MBps), using 12 parallel connections.
Upload:    26.312 Mbps (  3.289 MBps), using 12 parallel connections.
Total RTTs measured: 25
RPM:  4147

real    0m5.481s
user    0m1.178s
sys     0m1.155s

Timing still seems wrong, with 12 flows per direction and bi-directional the run time should be around 12 seconds, but certainly >= 8ms which it only is occasionally.

I am going to close this one and redirect your timing issue to a different bug just so I can keep thing straight in my little head! I am going to set up some parallel test infrastructure tomorrow. I will keep you posted! Thanks again for everything!

Will

richb-hanover commented 2 years ago

I can confirm that the crash no longer happens. I will contribute new results of the test to other tickets. Thanks!