Skip to content

Commit a9151b3

Browse files
authored
Merge branch 'main' into dependabot/npm_and_yarn/nodejs/nodejs-other-152aff5b41
2 parents a863cd4 + 250c391 commit a9151b3

File tree

13 files changed

+430
-325
lines changed

13 files changed

+430
-325
lines changed

collector/go.mod

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ replace cloud.google.com/go => cloud.google.com/go v0.107.0
2020

2121
require (
2222
github.com/golang-collections/go-datastructures v0.0.0-20150211160725-59788d5eb259
23-
github.com/google/go-cmp v0.6.0
23+
github.com/google/go-cmp v0.7.0
2424
github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/s3provider v0.119.0
2525
github.com/open-telemetry/opentelemetry-collector-contrib/confmap/provider/secretsmanagerprovider v0.119.0
2626
github.com/open-telemetry/opentelemetry-lambda/collector/lambdacomponents v0.98.0
@@ -43,24 +43,24 @@ require (
4343
github.com/alecthomas/participle/v2 v2.1.1 // indirect
4444
github.com/antchfx/xmlquery v1.4.3 // indirect
4545
github.com/antchfx/xpath v1.3.3 // indirect
46-
github.com/aws/aws-sdk-go-v2 v1.36.1 // indirect
47-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect
48-
github.com/aws/aws-sdk-go-v2/config v1.29.6 // indirect
49-
github.com/aws/aws-sdk-go-v2/credentials v1.17.59 // indirect
50-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect
51-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect
52-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect
53-
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 // indirect
54-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 // indirect
55-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect
56-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 // indirect
57-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect
58-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 // indirect
59-
github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 // indirect
46+
github.com/aws/aws-sdk-go-v2 v1.36.3 // indirect
47+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 // indirect
48+
github.com/aws/aws-sdk-go-v2/config v1.29.9 // indirect
49+
github.com/aws/aws-sdk-go-v2/credentials v1.17.62 // indirect
50+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 // indirect
51+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
52+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
53+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
54+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 // indirect
55+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect
56+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 // indirect
57+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 // indirect
58+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 // indirect
59+
github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 // indirect
6060
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.14 // indirect
61-
github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect
62-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect
63-
github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect
61+
github.com/aws/aws-sdk-go-v2/service/sso v1.25.1 // indirect
62+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.1 // indirect
63+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.17 // indirect
6464
github.com/aws/smithy-go v1.22.2 // indirect
6565
github.com/beorn7/perks v1.0.1 // indirect
6666
github.com/cenkalti/backoff/v4 v4.3.0 // indirect

collector/go.sum

Lines changed: 36 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,42 +10,42 @@ github.com/antchfx/xmlquery v1.4.3 h1:f6jhxCzANrWfa93O+NmRWvieVyLs+R2Szfpy+YrZaw
1010
github.com/antchfx/xmlquery v1.4.3/go.mod h1:AEPEEPYE9GnA2mj5Ur2L5Q5/2PycJ0N9Fusrx9b12fc=
1111
github.com/antchfx/xpath v1.3.3 h1:tmuPQa1Uye0Ym1Zn65vxPgfltWb/Lxu2jeqIGteJSRs=
1212
github.com/antchfx/xpath v1.3.3/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs=
13-
github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E=
14-
github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM=
15-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0=
16-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg=
17-
github.com/aws/aws-sdk-go-v2/config v1.29.6 h1:fqgqEKK5HaZVWLQoLiC9Q+xDlSp+1LYidp6ybGE2OGg=
18-
github.com/aws/aws-sdk-go-v2/config v1.29.6/go.mod h1:Ft+WLODzDQmCTHDvqAH1JfC2xxbZ0MxpZAcJqmE1LTQ=
19-
github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4=
20-
github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08=
21-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso=
22-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI=
23-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA=
24-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU=
25-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4=
26-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI=
27-
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2 h1:Pg9URiobXy85kgFev3og2CuOZ8JZUBENF+dcgWBaYNk=
28-
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.2/go.mod h1:FbtygfRFze9usAadmnGJNc8KsP346kEe+y2/oyhGAGc=
29-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32 h1:OIHj/nAhVzIXGzbAE+4XmZ8FPvro3THr6NlqErJc3wY=
30-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.32/go.mod h1:LiBEsDo34OJXqdDlRGsilhlIiXR7DL+6Cx2f4p1EgzI=
31-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA=
32-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY=
33-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6 h1:cCBJaT7EeEojpJ4s7wTDbhZlHVJOgNHN7iw6qVurGaw=
34-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.6/go.mod h1:WYH1ABybY7JK9TITPnk6ZlP7gQB8psI4c9qDmMsnLSA=
35-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw=
36-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE=
37-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13 h1:OBsrtam3rk8NfBEq7OLOMm5HtQ9Yyw32X4UQMya/wjw=
38-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.13/go.mod h1:3U4gFA5pmoCOja7aq4nSaIAGbaOHv2Yl2ug018cmC+Q=
39-
github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0 h1:ehvUZNVrGA1Usa6yYo8A8pUqrigRelWXSbcCqYpRLeI=
40-
github.com/aws/aws-sdk-go-v2/service/s3 v1.76.0/go.mod h1:KuLNrwYJFaC2AVZ+CVVc12k9NyqwgWsoNNHjwqF6QNk=
13+
github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM=
14+
github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg=
15+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10 h1:zAybnyUQXIZ5mok5Jqwlf58/TFE7uvd3IAsa1aF9cXs=
16+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.10/go.mod h1:qqvMj6gHLR/EXWZw4ZbqlPbQUyenf4h82UQUlKc+l14=
17+
github.com/aws/aws-sdk-go-v2/config v1.29.9 h1:Kg+fAYNaJeGXp1vmjtidss8O2uXIsXwaRqsQJKXVr+0=
18+
github.com/aws/aws-sdk-go-v2/config v1.29.9/go.mod h1:oU3jj2O53kgOU4TXq/yipt6ryiooYjlkqqVaZk7gY/U=
19+
github.com/aws/aws-sdk-go-v2/credentials v1.17.62 h1:fvtQY3zFzYJ9CfixuAQ96IxDrBajbBWGqjNTCa79ocU=
20+
github.com/aws/aws-sdk-go-v2/credentials v1.17.62/go.mod h1:ElETBxIQqcxej++Cs8GyPBbgMys5DgQPTwo7cUPDKt8=
21+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30 h1:x793wxmUWVDhshP8WW2mlnXuFrO4cOd3HLBroh1paFw=
22+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.30/go.mod h1:Jpne2tDnYiFascUEs2AWHJL9Yp7A5ZVy3TNyxaAjD6M=
23+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q=
24+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY=
25+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0=
26+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q=
27+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
28+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
29+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34 h1:ZNTqv4nIdE/DiBfUUfXcLZ/Spcuz+RjeziUtNJackkM=
30+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.34/go.mod h1:zf7Vcd1ViW7cPqYWEHLHJkS50X0JS2IKz9Cgaj6ugrs=
31+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE=
32+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA=
33+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0 h1:lguz0bmOoGzozP9XfRJR1QIayEYo+2vP/No3OfLF0pU=
34+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.0/go.mod h1:iu6FSzgt+M2/x3Dk8zhycdIcHjEFb36IS8HVUVFoMg0=
35+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15 h1:dM9/92u2F1JbDaGooxTq18wmmFzbJRfXfVfy96/1CXM=
36+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.15/go.mod h1:SwFBy2vjtA0vZbjjaFtfN045boopadnoVPhu4Fv66vY=
37+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15 h1:moLQUoVq91LiqT1nbvzDukyqAlCv89ZmwaHw/ZFlFZg=
38+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.15/go.mod h1:ZH34PJUc8ApjBIfgQCFvkWcUDBtl/WTD+uiYHjd8igA=
39+
github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2 h1:jIiopHEV22b4yQP2q36Y0OmwLbsxNWdWwfZRR5QRRO4=
40+
github.com/aws/aws-sdk-go-v2/service/s3 v1.78.2/go.mod h1:U5SNqwhXB3Xe6F47kXvWihPl/ilGaEDe8HD/50Z9wxc=
4141
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.14 h1:rhT0h8cSV5ZNZWy67Eqe3OQTFGRu9xwgyFsuGeIXmGQ=
4242
github.com/aws/aws-sdk-go-v2/service/secretsmanager v1.34.14/go.mod h1:CLEjbx0xH3ptihCb1l0XlrqoGfWD9xU0na47/s7fR/s=
43-
github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ=
44-
github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y=
45-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE=
46-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ=
47-
github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE=
48-
github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc=
43+
github.com/aws/aws-sdk-go-v2/service/sso v1.25.1 h1:8JdC7Gr9NROg1Rusk25IcZeTO59zLxsKgE0gkh5O6h0=
44+
github.com/aws/aws-sdk-go-v2/service/sso v1.25.1/go.mod h1:qs4a9T5EMLl/Cajiw2TcbNt2UNo/Hqlyp+GiuG4CFDI=
45+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.1 h1:KwuLovgQPcdjNMfFt9OhUd9a2OwcOKhxfvF4glTzLuA=
46+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.29.1/go.mod h1:MlYRNmYu/fGPoxBQVvBYr9nyr948aY/WLUvwBMBJubs=
47+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.17 h1:PZV5W8yk4OtH1JAuhV2PXwwO9v5G5Aoj+eMCn4T+1Kc=
48+
github.com/aws/aws-sdk-go-v2/service/sts v1.33.17/go.mod h1:cQnB8CUnxbMU82JvlqjKR2HBOm3fe9pWorWBza6MBJ4=
4949
github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ=
5050
github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
5151
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
@@ -97,8 +97,9 @@ github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6
9797
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
9898
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
9999
github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
100-
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
101100
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
101+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
102+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
102103
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
103104
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
104105
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=

collector/internal/telemetryapi/listener.go

Lines changed: 44 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,32 @@ package telemetryapi
1717
import (
1818
"context"
1919
"encoding/json"
20+
"errors"
2021
"fmt"
2122
"io"
23+
"math/rand"
24+
"net"
2225
"net/http"
2326
"os"
27+
"syscall"
2428
"time"
2529

2630
"github.com/golang-collections/go-datastructures/queue"
2731
"go.uber.org/zap"
2832
)
2933

30-
const defaultListenerPort = "53612"
31-
const initialQueueSize = 5
34+
const (
35+
initialQueueSize = 5
36+
maxRetries = 5
37+
// Define ephemeral port range (typical range is 49152-65535)
38+
minPort = 49152
39+
maxPort = 65535
40+
)
41+
42+
// getRandomPort returns a random port number within the ephemeral range
43+
func getRandomPort() string {
44+
return fmt.Sprintf("%d", rand.Intn(maxPort-minPort)+minPort)
45+
}
3246

3347
// Listener is used to listen to the Telemetry API
3448
type Listener struct {
@@ -46,26 +60,48 @@ func NewListener(logger *zap.Logger) *Listener {
4660
}
4761
}
4862

49-
func listenOnAddress() string {
63+
func (s *Listener) tryBindPort() (net.Listener, string, error) {
64+
for i := 0; i < maxRetries; i++ {
65+
port := getRandomPort()
66+
address := listenOnAddress(port)
67+
68+
l, err := net.Listen("tcp", address)
69+
if err != nil {
70+
if errors.Is(err, syscall.EADDRINUSE) {
71+
s.logger.Debug("Port in use, trying another",
72+
zap.String("address", address))
73+
continue
74+
}
75+
return nil, "", err
76+
}
77+
return l, address, nil
78+
}
79+
80+
return nil, "", fmt.Errorf("failed to find available port after %d attempts", maxRetries)
81+
}
82+
83+
func listenOnAddress(port string) string {
5084
envAwsLocal, ok := os.LookupEnv("AWS_SAM_LOCAL")
5185
var addr string
5286
if ok && envAwsLocal == "true" {
53-
addr = ":" + defaultListenerPort
87+
addr = ":" + port
5488
} else {
55-
addr = "sandbox.localdomain:" + defaultListenerPort
89+
addr = "sandbox.localdomain:" + port
5690
}
57-
5891
return addr
5992
}
6093

6194
// Start the server in a goroutine where the log events will be sent
6295
func (s *Listener) Start() (string, error) {
63-
address := listenOnAddress()
96+
listener, address, err := s.tryBindPort()
97+
if err != nil {
98+
return "", fmt.Errorf("failed to find available port: %w", err)
99+
}
64100
s.logger.Info("Listening for requests", zap.String("address", address))
65101
s.httpServer = &http.Server{Addr: address}
66102
http.HandleFunc("/", s.httpHandler)
67103
go func() {
68-
err := s.httpServer.ListenAndServe()
104+
err := s.httpServer.Serve(listener)
69105
if err != http.ErrServerClosed {
70106
s.logger.Error("Unexpected stop on HTTP Server", zap.Error(err))
71107
s.Shutdown()

0 commit comments

Comments
 (0)