Skip to content

Commit b02f4ed

Browse files
Kafka timeouts (#952)
* set timeout on kafka produce * set timeout on kafka consume * use kafka kraft in e2e test kafka_file * set kafka timeout in e2e tests * use kafka kraft in e2e test kafka_auth * add kafka for split_join e2e test * Revert "add kafka for split_join e2e test" This reverts commit 64642c7. * set context in kafka record * franz-go v1.20.7 * set context nil for record * wait for kafka start * kafka consumer: use own ctx for consume * use parent context on kafka consume * set kafka timeouts in e2e tests * e2e split_join: create consumer group * kafka consumer: use only cancel context * no need ForceMetadataRefresh * kafka output: stop batcher before cancel context
1 parent c732019 commit b02f4ed

15 files changed

Lines changed: 115 additions & 89 deletions

File tree

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ test-e2e:
3636
.PHONY: test-e2e-docker-up
3737
test-e2e-docker-up:
3838
for dc in $(shell find e2e -name 'docker-compose.yml') ; do \
39-
docker compose -f $$dc up -d ; \
39+
docker compose -f $$dc up -d --wait; \
4040
done
4141

4242
.PHONY: test-e2e-docker-down

e2e/kafka_auth/docker-compose.yml

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,18 @@
11
version: "2.1"
22

33
services:
4-
zookeeper:
5-
image: zookeeper:3.9
6-
ports:
7-
- "2182:2181"
8-
volumes:
9-
- "zookeeper_data:/data"
10-
environment:
11-
ZOO_MY_ID: 1
12-
ZOO_PORT: 2181
13-
ZOO_4LW_COMMANDS_WHITELIST: "*"
14-
ZOO_SERVERS: server.1=zookeeper:2888:3888;2181
154
init-certs:
16-
image: docker.io/bitnamilegacy/kafka:3.6
5+
image: docker.io/bitnamilegacy/kafka:3.9
176
command: /tmp/generate.sh
187
working_dir: /tmp/
198
user: 0:0
209
volumes:
2110
- ./certs/:/tmp/certs/
2211
- "./generate.sh:/tmp/generate.sh"
2312
kafka:
24-
image: docker.io/bitnamilegacy/kafka:3.6
13+
image: docker.io/bitnamilegacy/kafka:3.9
2514
container_name: kafka
2615
depends_on:
27-
zookeeper:
28-
condition: service_started
2916
init-certs:
3017
condition: service_completed_successfully
3118
ports:
@@ -35,13 +22,25 @@ services:
3522
- "kafka_data:/bitnami"
3623
- ./certs/kafka.truststore.jks:/bitnami/kafka/config/certs/kafka.truststore.jks
3724
- ./certs/kafka.keystore.jks:/bitnami/kafka/config/certs/kafka.keystore.jks
25+
healthcheck:
26+
test:
27+
[
28+
"CMD-SHELL",
29+
"/opt/bitnami/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9094",
30+
]
31+
interval: 10s
32+
timeout: 5s
33+
retries: 5
34+
start_period: 10s
3835
environment:
39-
# Zookeeper
40-
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
36+
- KAFKA_CFG_NODE_ID=1001
37+
- KAFKA_CFG_PROCESS_ROLES=broker,controller
38+
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
39+
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1001@localhost:9096
4140
# Listeners
42-
- KAFKA_CFG_LISTENERS=SASL_SSL://:9093,SASL_PLAINTEXT://:9095,PLAINTEXT://:9094
43-
- KAFKA_CFG_ADVERTISED_LISTENERS=SASL_SSL://localhost:9093,SASL_PLAINTEXT://localhost:9095,PLAINTEXT://:9094
44-
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,SSL:SSL
41+
- KAFKA_CFG_LISTENERS=SASL_SSL://:9093,SASL_PLAINTEXT://:9095,PLAINTEXT://:9094,CONTROLLER://:9096
42+
- KAFKA_CFG_ADVERTISED_LISTENERS=SASL_SSL://localhost:9093,SASL_PLAINTEXT://localhost:9095,PLAINTEXT://localhost:9094
43+
- KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL,SSL:SSL,CONTROLLER:PLAINTEXT
4544
# Inter broker
4645
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=PLAINTEXT
4746
- KAFKA_CFG_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN
@@ -57,7 +56,5 @@ services:
5756
- KAFKA_CFG_SSL_CLIENT_AUTH=required
5857

5958
volumes:
60-
zookeeper_data:
61-
driver: local
6259
kafka_data:
6360
driver: local

e2e/kafka_auth/kafka_auth.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ func (c *Config) Configure(t *testing.T, _ *cfg.Config, _ string) {
111111
MaxMessageBytes_: 1000000,
112112
SslEnabled: c.SslEnabled,
113113
SslSkipVerify: true,
114+
Timeout_: 10 * time.Second,
114115
}
115116
if tt.sasl.Enabled {
116117
config.SaslEnabled = true

e2e/kafka_file/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ pipelines:
44
type: kafka
55
offset: oldest
66
meta:
7-
partition: 'partition_{{ .partition }}'
8-
topic: '{{ .topic }}'
7+
partition: "partition_{{ .partition }}"
8+
topic: "{{ .topic }}"
99
output:
1010
type: file

e2e/kafka_file/docker-compose.yml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,32 @@
11
version: "2"
22

33
services:
4-
zookeeper:
5-
image: zookeeper:3.9
6-
ports:
7-
- "2181:2181"
8-
volumes:
9-
- "zookeeper_data:/data"
10-
environment:
11-
ZOO_MY_ID: 1
12-
ZOO_PORT: 2181
13-
ZOO_4LW_COMMANDS_WHITELIST: "*"
14-
ZOO_SERVERS: server.1=zookeeper:2888:3888;2181
154
kafka:
16-
image: docker.io/bitnamilegacy/kafka:3.1
5+
image: docker.io/bitnamilegacy/kafka:3.9
176
ports:
187
- "9092:9092"
198
volumes:
209
- "kafka_data:/bitnami"
10+
healthcheck:
11+
test:
12+
[
13+
"CMD-SHELL",
14+
"/opt/bitnami/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092",
15+
]
16+
interval: 10s
17+
timeout: 5s
18+
retries: 5
19+
start_period: 10s
2120
environment:
22-
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
21+
- KAFKA_CFG_NODE_ID=1001
22+
- KAFKA_CFG_PROCESS_ROLES=broker,controller
23+
- KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
2324
- ALLOW_PLAINTEXT_LISTENER=yes
2425
- KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
25-
depends_on:
26-
- zookeeper
26+
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
27+
- KAFKA_CFG_CONTROLLER_LISTENERS=CONTROLLER://:9093
28+
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1001@localhost:9093
2729

2830
volumes:
29-
zookeeper_data:
30-
driver: local
3131
kafka_data:
3232
driver: local

e2e/kafka_file/kafka_file.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ func (c *Config) Send(t *testing.T) {
5050
Brokers: c.Brokers,
5151
MaxMessageBytes_: 512,
5252
BatchSize_: c.Count,
53+
Timeout_: 10 * time.Second,
5354
}
5455

5556
client := kafka_out.NewClient(config,

e2e/split_join/config.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ pipelines:
1414
field: data
1515
- type: join
1616
field: message
17-
start: '/^start/'
18-
continue: '/^continue/'
17+
start: "/^start/"
18+
continue: "/^continue/"
1919
- type: debug
2020
message: output event sample
2121
output:

e2e/split_join/split_join.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,13 @@ func (c *Config) Configure(t *testing.T, conf *cfg.Config, pipelineName string)
7171
adminClient := kadm.NewClient(c.client)
7272
_, err := adminClient.CreateTopic(context.TODO(), 1, 1, nil, c.topic)
7373
r.NoError(err)
74+
75+
// create consumer group
76+
pollCtx, pollCancel := context.WithTimeout(context.Background(), 5*time.Second)
77+
fetches := c.client.PollFetches(pollCtx)
78+
pollCancel()
79+
fetches.EachError(func(topic string, p int32, err error) {})
80+
fetches.EachRecord(func(r *kgo.Record) {})
7481
}
7582

7683
func (c *Config) Send(t *testing.T) {
@@ -89,7 +96,7 @@ func (c *Config) Send(t *testing.T) {
8996
func (c *Config) Validate(t *testing.T) {
9097
r := require.New(t)
9198

92-
ctx, cancel := context.WithTimeout(context.Background(), time.Minute)
99+
ctx, cancel := context.WithTimeout(context.Background(), 1*time.Minute)
93100
defer cancel()
94101

95102
expectedEventsCount := messages * arrayLen

go.mod

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ require (
2828
github.com/jackc/pgconn v1.14.3
2929
github.com/jackc/pgproto3/v2 v2.3.3
3030
github.com/jackc/pgx/v4 v4.18.3
31-
github.com/klauspost/compress v1.18.1
31+
github.com/klauspost/compress v1.18.4
3232
github.com/minio/minio-go v6.0.14+incompatible
3333
github.com/ozontech/insane-json v0.1.9
34-
github.com/pierrec/lz4/v4 v4.1.22
34+
github.com/pierrec/lz4/v4 v4.1.25
3535
github.com/prometheus/client_golang v1.16.0
3636
github.com/prometheus/client_model v0.3.0
3737
github.com/prometheus/common v0.42.0
@@ -42,7 +42,7 @@ require (
4242
github.com/stretchr/testify v1.10.0
4343
github.com/tidwall/gjson v1.18.0
4444
github.com/timtadh/lexmachine v0.2.3
45-
github.com/twmb/franz-go v1.20.5
45+
github.com/twmb/franz-go v1.20.7
4646
github.com/twmb/franz-go/pkg/kadm v1.12.0
4747
github.com/twmb/franz-go/plugin/kzap v1.1.2
4848
github.com/twmb/tlscfg v1.2.1
@@ -51,7 +51,7 @@ require (
5151
go.uber.org/atomic v1.11.0
5252
go.uber.org/automaxprocs v1.5.3
5353
go.uber.org/zap v1.27.0
54-
golang.org/x/net v0.47.0
54+
golang.org/x/net v0.49.0
5555
google.golang.org/protobuf v1.36.5
5656
gopkg.in/yaml.v2 v2.4.0
5757
gopkg.in/yaml.v3 v3.0.1
@@ -142,15 +142,15 @@ require (
142142
go.uber.org/multierr v1.11.0 // indirect
143143
go.yaml.in/yaml/v2 v2.4.2 // indirect
144144
go.yaml.in/yaml/v3 v3.0.4 // indirect
145-
golang.org/x/crypto v0.45.0 // indirect
146-
golang.org/x/mod v0.29.0 // indirect
145+
golang.org/x/crypto v0.48.0 // indirect
146+
golang.org/x/mod v0.32.0 // indirect
147147
golang.org/x/oauth2 v0.27.0 // indirect
148-
golang.org/x/sync v0.18.0 // indirect
149-
golang.org/x/sys v0.38.0 // indirect
150-
golang.org/x/term v0.37.0 // indirect
151-
golang.org/x/text v0.31.0 // indirect
148+
golang.org/x/sync v0.19.0 // indirect
149+
golang.org/x/sys v0.41.0 // indirect
150+
golang.org/x/term v0.40.0 // indirect
151+
golang.org/x/text v0.34.0 // indirect
152152
golang.org/x/time v0.12.0 // indirect
153-
golang.org/x/tools v0.38.0 // indirect
153+
golang.org/x/tools v0.41.0 // indirect
154154
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
155155
gopkg.in/inf.v0 v0.9.1 // indirect
156156
gopkg.in/ini.v1 v1.62.0 // indirect

go.sum

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -213,8 +213,8 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7
213213
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
214214
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
215215
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
216-
github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
217-
github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
216+
github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
217+
github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
218218
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
219219
github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
220220
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -273,8 +273,8 @@ github.com/ozontech/insane-json v0.1.9 h1:JG5cEsmuSDwmU7KTJTHfTJ40XMgvtPdsUQbXdb
273273
github.com/ozontech/insane-json v0.1.9/go.mod h1:xZLf3tVLOqaT13rn1sv4fYaZfupAXNL9naLz4QRoMfY=
274274
github.com/pascaldekloe/name v1.0.1 h1:9lnXOHeqeHHnWLbKfH6X98+4+ETVqFqxN09UXSjcMb0=
275275
github.com/pascaldekloe/name v1.0.1/go.mod h1:Z//MfYJnH4jVpQ9wkclwu2I2MkHmXTlT9wR5UZScttM=
276-
github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
277-
github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
276+
github.com/pierrec/lz4/v4 v4.1.25 h1:kocOqRffaIbU5djlIBr7Wh+cx82C0vtFb0fOurZHqD0=
277+
github.com/pierrec/lz4/v4 v4.1.25/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
278278
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
279279
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
280280
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
@@ -349,8 +349,8 @@ github.com/timtadh/data-structures v0.6.1/go.mod h1:uYUnI1cQi/5yMCc7s23I+x8Mn8BC
349349
github.com/timtadh/getopt v1.0.0/go.mod h1:L3EL6YN2G0eIAhYBo9b7SB9d/kEQmdnwthIlMJfj210=
350350
github.com/timtadh/lexmachine v0.2.3 h1:ZqlfHnfMcAygtbNM5Gv7jQf8hmM8LfVzDjfCrq235NQ=
351351
github.com/timtadh/lexmachine v0.2.3/go.mod h1:oK1NW+93fQSIF6s+J6sXBFWsCPCFbNmrwKV1i0aqvW0=
352-
github.com/twmb/franz-go v1.20.5 h1:Gj9jdkvlddf8pdrehvtDHLPult5JS8q65oITUff6dXo=
353-
github.com/twmb/franz-go v1.20.5/go.mod h1:gZmp2nTNfKuiKKND8qAsv28VdMlr/Gf4BIcsj99Bmtk=
352+
github.com/twmb/franz-go v1.20.7 h1:P4MGSXJjjAPP3NRGPCks/Lrq+j+twWMVl1qYCVgNmWY=
353+
github.com/twmb/franz-go v1.20.7/go.mod h1:0bRX9HZVaoueqFWhPZNi2ODnJL7DNa6mK0HeCrC2bNU=
354354
github.com/twmb/franz-go/pkg/kadm v1.12.0 h1:I8P/gpXFzhl73QcAYmJu+1fOXvrynyH/MAotr2udEg4=
355355
github.com/twmb/franz-go/pkg/kadm v1.12.0/go.mod h1:VMvpfjz/szpH9WB+vGM+rteTzVv0djyHFimci9qm2C0=
356356
github.com/twmb/franz-go/pkg/kmsg v1.12.0 h1:CbatD7ers1KzDNgJqPbKOq0Bz/WLBdsTH75wgzeVaPc=
@@ -425,8 +425,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y
425425
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
426426
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
427427
golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ=
428-
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
429-
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
428+
golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=
429+
golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=
430430
golang.org/x/exp v0.0.0-20230116083435-1de6713980de h1:DBWn//IJw30uYCgERoxCg84hWtA97F4wMiKOIh00Uf0=
431431
golang.org/x/exp v0.0.0-20230116083435-1de6713980de/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc=
432432
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@@ -437,8 +437,8 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
437437
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
438438
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
439439
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
440-
golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
441-
golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
440+
golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
441+
golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
442442
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
443443
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
444444
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -451,8 +451,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug
451451
golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
452452
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
453453
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
454-
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
455-
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
454+
golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
455+
golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
456456
golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
457457
golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
458458
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -462,8 +462,8 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
462462
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
463463
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
464464
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
465-
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
466-
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
465+
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
466+
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
467467
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
468468
golang.org/x/sys v0.0.0-20180926160741-c2ed4eda69e7/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
469469
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -485,16 +485,16 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
485485
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
486486
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
487487
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
488-
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
489-
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
488+
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
489+
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
490490
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
491491
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
492492
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
493493
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
494494
golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo=
495495
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
496-
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
497-
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
496+
golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
497+
golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
498498
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
499499
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
500500
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -505,8 +505,8 @@ golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ=
505505
golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
506506
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
507507
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
508-
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
509-
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
508+
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
509+
golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
510510
golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
511511
golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
512512
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -524,8 +524,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
524524
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
525525
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
526526
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
527-
golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
528-
golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
527+
golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
528+
golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
529529
golang.org/x/xerrors v0.0.0-20190410155217-1f06c39b4373/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
530530
golang.org/x/xerrors v0.0.0-20190513163551-3ee3066db522/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
531531
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

0 commit comments

Comments
 (0)