Skip to content

Commit 2f1781a

Browse files
authored
Update dapr/kit & diagridio/go-etcd-cron (dapr#8686)
* Update dapr/kit & diagridio/go-etcd-cron Updates dapr/kit => v0.15.2 & diagridio/go-etcd-cron => v0.6.1 The go-etcd-cron update removes a rare deadlock that can occur in Scheduler after running a high throughput under daprd scale events. Also increases Scheduler throughput performance by ~3x. Signed-off-by: joshvanl <[email protected]> * Adds docs/v1.15.5.md Signed-off-by: joshvanl <[email protected]> --------- Signed-off-by: joshvanl <[email protected]>
1 parent fffaca6 commit 2f1781a

File tree

13 files changed

+311
-230
lines changed

13 files changed

+311
-230
lines changed

docs/release_notes/v1.15.5.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Dapr 1.15.5
2+
3+
This update includes bug fixes:
4+
5+
- [Fix Workflow execution deadlock](#fix-workflow-execution-deadlock)
6+
7+
## Fix Workflow execution deadlock
8+
9+
### Problem
10+
11+
After running a number of workflows for a long enough time, execution would become stuck.
12+
13+
### Impact
14+
15+
Workflows could no longer be executed.
16+
17+
### Root cause
18+
19+
The implementation of the Workflow queue in Scheduler (diagridio/go-etcd-cron) would occur a deadlock in very rare circumstances.
20+
21+
### Solution
22+
23+
The go-etcd-cron queue implementation has been updated to use a control loop paradigm to avoid deadlocks.
24+
A side effect of this change will see Workflow (and Job generally) see a ~3x improvement in performance in high throughput scenarios.

go.mod

Lines changed: 78 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ require (
1313
github.com/cloudevents/sdk-go/v2 v2.15.2
1414
github.com/dapr/components-contrib v1.15.1-0.20250409220637-70c99725fd12
1515
github.com/dapr/durabletask-go v0.6.5
16-
github.com/dapr/kit v0.15.1
17-
github.com/diagridio/go-etcd-cron v0.4.4
16+
github.com/dapr/kit v0.15.2
17+
github.com/diagridio/go-etcd-cron v0.6.1
1818
github.com/evanphx/json-patch/v5 v5.9.0
1919
github.com/go-chi/chi/v5 v5.0.11
2020
github.com/go-chi/cors v1.2.1
2121
github.com/go-logr/logr v1.4.2
2222
github.com/golang/mock v1.6.0
2323
github.com/golang/protobuf v1.5.4
2424
github.com/google/cel-go v0.20.1
25-
github.com/google/go-cmp v0.6.0
25+
github.com/google/go-cmp v0.7.0
2626
github.com/google/gofuzz v1.2.0
2727
github.com/google/uuid v1.6.0
2828
github.com/gorilla/mux v1.8.1
@@ -40,65 +40,67 @@ require (
4040
github.com/lestrrat-go/jwx/v2 v2.0.21
4141
github.com/mitchellh/mapstructure v1.5.1-0.20220423185008-bf980b35cac4
4242
github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5
43-
github.com/prometheus/client_golang v1.20.4
43+
github.com/prometheus/client_golang v1.22.0
4444
github.com/prometheus/client_model v0.6.1
45-
github.com/prometheus/common v0.59.1
45+
github.com/prometheus/common v0.63.0
4646
github.com/redis/go-redis/v9 v9.6.3
4747
github.com/sony/gobreaker v0.5.0
4848
github.com/spf13/cast v1.6.0
49-
github.com/spf13/pflag v1.0.5
49+
github.com/spf13/pflag v1.0.6
5050
github.com/spiffe/go-spiffe/v2 v2.1.7
5151
github.com/stretchr/testify v1.10.0
52-
go.etcd.io/etcd/api/v3 v3.5.16
53-
go.etcd.io/etcd/client/pkg/v3 v3.5.16
54-
go.etcd.io/etcd/client/v3 v3.5.16
55-
go.etcd.io/etcd/server/v3 v3.5.16
52+
go.etcd.io/etcd/api/v3 v3.5.21
53+
go.etcd.io/etcd/client/pkg/v3 v3.5.21
54+
go.etcd.io/etcd/client/v3 v3.5.21
55+
go.etcd.io/etcd/server/v3 v3.5.21
5656
go.mongodb.org/mongo-driver v1.14.0
5757
go.opencensus.io v0.24.0
58-
go.opentelemetry.io/otel v1.34.0
59-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.30.0
60-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.30.0
58+
go.opentelemetry.io/otel v1.35.0
59+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0
60+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0
6161
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.26.0
6262
go.opentelemetry.io/otel/exporters/zipkin v1.34.0
63-
go.opentelemetry.io/otel/sdk v1.34.0
64-
go.opentelemetry.io/otel/trace v1.34.0
63+
go.opentelemetry.io/otel/sdk v1.35.0
64+
go.opentelemetry.io/otel/trace v1.35.0
6565
go.uber.org/automaxprocs v1.5.3
6666
go.uber.org/ratelimit v0.3.0
67-
golang.org/x/crypto v0.35.0
68-
golang.org/x/net v0.36.0
69-
golang.org/x/sync v0.11.0
70-
google.golang.org/genproto/googleapis/api v0.0.0-20241202173237-19429a94021a
71-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250124145028-65684f501c47
72-
google.golang.org/grpc v1.70.0
73-
google.golang.org/protobuf v1.36.4
67+
golang.org/x/crypto v0.37.0
68+
golang.org/x/net v0.39.0
69+
golang.org/x/sync v0.13.0
70+
google.golang.org/genproto/googleapis/api v0.0.0-20250409194420-de1ac958c67a
71+
google.golang.org/genproto/googleapis/rpc v0.0.0-20250409194420-de1ac958c67a
72+
google.golang.org/grpc v1.71.1
73+
google.golang.org/protobuf v1.36.6
7474
gopkg.in/yaml.v3 v3.0.1
7575
k8s.io/api v0.31.0
7676
k8s.io/apiextensions-apiserver v0.31.0
77-
k8s.io/apimachinery v0.31.1
77+
k8s.io/apimachinery v0.32.3
7878
k8s.io/cli-runtime v0.30.2
7979
k8s.io/client-go v0.31.0
8080
k8s.io/code-generator v0.31.0
8181
k8s.io/klog v1.0.0
8282
k8s.io/metrics v0.30.2
83-
k8s.io/utils v0.0.0-20241210054802-24370beab758
83+
k8s.io/utils v0.0.0-20250321185631-1f6e0b77f77e
8484
modernc.org/sqlite v1.34.5
8585
sigs.k8s.io/controller-runtime v0.19.0
8686
sigs.k8s.io/yaml v1.4.0
8787
)
8888

8989
require (
90-
cloud.google.com/go v0.115.1 // indirect
90+
cel.dev/expr v0.19.2 // indirect
91+
cloud.google.com/go v0.120.0 // indirect
9192
cloud.google.com/go/ai v0.6.0 // indirect
92-
cloud.google.com/go/aiplatform v1.68.0 // indirect
93-
cloud.google.com/go/auth v0.9.3 // indirect
94-
cloud.google.com/go/auth/oauth2adapt v0.2.4 // indirect
95-
cloud.google.com/go/compute/metadata v0.5.2 // indirect
96-
cloud.google.com/go/datastore v1.19.0 // indirect
97-
cloud.google.com/go/iam v1.2.1 // indirect
98-
cloud.google.com/go/longrunning v0.6.1 // indirect
99-
cloud.google.com/go/pubsub v1.43.0 // indirect
100-
cloud.google.com/go/secretmanager v1.14.1 // indirect
101-
cloud.google.com/go/storage v1.43.0 // indirect
93+
cloud.google.com/go/aiplatform v1.81.0 // indirect
94+
cloud.google.com/go/auth v0.15.0 // indirect
95+
cloud.google.com/go/auth/oauth2adapt v0.2.7 // indirect
96+
cloud.google.com/go/compute/metadata v0.6.0 // indirect
97+
cloud.google.com/go/datastore v1.20.0 // indirect
98+
cloud.google.com/go/iam v1.5.0 // indirect
99+
cloud.google.com/go/longrunning v0.6.6 // indirect
100+
cloud.google.com/go/monitoring v1.24.1 // indirect
101+
cloud.google.com/go/pubsub v1.48.1 // indirect
102+
cloud.google.com/go/secretmanager v1.14.6 // indirect
103+
cloud.google.com/go/storage v1.50.0 // indirect
102104
cloud.google.com/go/vertexai v0.10.0 // indirect
103105
dubbo.apache.org/dubbo-go/v3 v3.0.3-0.20230118042253-4f159a2b38f3 // indirect
104106
github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect
@@ -126,6 +128,9 @@ require (
126128
github.com/AzureAD/microsoft-authentication-library-for-go v1.2.2 // indirect
127129
github.com/Code-Hex/go-generics-cache v1.3.1 // indirect
128130
github.com/DataDog/zstd v1.5.2 // indirect
131+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0 // indirect
132+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.50.0 // indirect
133+
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.50.0 // indirect
129134
github.com/IBM/sarama v1.43.3 // indirect
130135
github.com/OneOfOne/xxhash v1.2.8 // indirect
131136
github.com/PaesslerAG/gval v1.0.0 // indirect
@@ -200,6 +205,7 @@ require (
200205
github.com/cloudwego/kitex v0.5.0 // indirect
201206
github.com/cloudwego/netpoll v0.3.2 // indirect
202207
github.com/cloudwego/thriftgo v0.3.0 // indirect
208+
github.com/cncf/xds/go v0.0.0-20250121191232-2f005788dc42 // indirect
203209
github.com/cohesion-org/deepseek-go v1.2.0 // indirect
204210
github.com/coreos/go-semver v0.3.1 // indirect
205211
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
@@ -223,6 +229,8 @@ require (
223229
github.com/eclipse/paho.mqtt.golang v1.4.3 // indirect
224230
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
225231
github.com/emirpasic/gods v1.18.1 // indirect
232+
github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
233+
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
226234
github.com/evanphx/json-patch v5.7.0+incompatible // indirect
227235
github.com/fasthttp-contrib/sessions v0.0.0-20160905201309-74f6ac73d5d5 // indirect
228236
github.com/fatih/color v1.17.0 // indirect
@@ -238,9 +246,9 @@ require (
238246
github.com/go-logr/stdr v1.2.2 // indirect
239247
github.com/go-logr/zapr v1.3.0 // indirect
240248
github.com/go-ole/go-ole v1.2.6 // indirect
241-
github.com/go-openapi/jsonpointer v0.20.0 // indirect
249+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
242250
github.com/go-openapi/jsonreference v0.20.2 // indirect
243-
github.com/go-openapi/swag v0.22.4 // indirect
251+
github.com/go-openapi/swag v0.23.0 // indirect
244252
github.com/go-ozzo/ozzo-validation/v4 v4.3.0 // indirect
245253
github.com/go-pkgz/expirable-cache v0.1.0 // indirect
246254
github.com/go-playground/locales v0.14.0 // indirect
@@ -266,16 +274,16 @@ require (
266274
github.com/google/flatbuffers v23.5.26+incompatible // indirect
267275
github.com/google/generative-ai-go v0.14.0 // indirect
268276
github.com/google/gnostic-models v0.6.8 // indirect
269-
github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af // indirect
270-
github.com/google/s2a-go v0.1.8 // indirect
277+
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db // indirect
278+
github.com/google/s2a-go v0.1.9 // indirect
271279
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
272-
github.com/googleapis/enterprise-certificate-proxy v0.3.3 // indirect
273-
github.com/googleapis/gax-go/v2 v2.13.0 // indirect
280+
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
281+
github.com/googleapis/gax-go/v2 v2.14.1 // indirect
274282
github.com/grandcat/zeroconf v1.0.0 // indirect
275283
github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect
276284
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
277285
github.com/grpc-ecosystem/grpc-gateway v1.16.0 // indirect
278-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect
286+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.3 // indirect
279287
github.com/gsterjov/go-libsecret v0.0.0-20161001094733-a6f4afe4910c // indirect
280288
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed // indirect
281289
github.com/hamba/avro/v2 v2.25.1 // indirect
@@ -309,11 +317,11 @@ require (
309317
github.com/jinzhu/copier v0.3.5 // indirect
310318
github.com/jmespath/go-jmespath v0.4.0 // indirect
311319
github.com/joho/godotenv v1.5.1 // indirect
312-
github.com/jonboulle/clockwork v0.4.0 // indirect
320+
github.com/jonboulle/clockwork v0.5.0 // indirect
313321
github.com/josharian/intern v1.0.0 // indirect
314322
github.com/json-iterator/go v1.1.12 // indirect
315323
github.com/k0kubun/pp v3.0.1+incompatible // indirect
316-
github.com/klauspost/compress v1.17.10 // indirect
324+
github.com/klauspost/compress v1.18.0 // indirect
317325
github.com/knadh/koanf v1.4.1 // indirect
318326
github.com/kr/fs v0.1.0 // indirect
319327
github.com/kubemq-io/kubemq-go v1.7.9 // indirect
@@ -341,7 +349,7 @@ require (
341349
github.com/mitchellh/copystructure v1.2.0 // indirect
342350
github.com/mitchellh/go-homedir v1.1.0 // indirect
343351
github.com/mitchellh/reflectwalk v1.0.2 // indirect
344-
github.com/moby/spdystream v0.4.0 // indirect
352+
github.com/moby/spdystream v0.5.0 // indirect
345353
github.com/moby/term v0.5.0 // indirect
346354
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
347355
github.com/modern-go/reflect2 v1.0.2 // indirect
@@ -371,9 +379,10 @@ require (
371379
github.com/pkg/errors v0.9.1 // indirect
372380
github.com/pkg/sftp v1.13.6 // indirect
373381
github.com/pkoukk/tiktoken-go v0.1.6 // indirect
382+
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
374383
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
375384
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
376-
github.com/prometheus/procfs v0.15.1 // indirect
385+
github.com/prometheus/procfs v0.16.0 // indirect
377386
github.com/prometheus/statsd_exporter v0.22.7 // indirect
378387
github.com/puzpuzpuz/xsync/v3 v3.0.0 // indirect
379388
github.com/rabbitmq/amqp091-go v1.9.0 // indirect
@@ -427,31 +436,33 @@ require (
427436
github.com/yuin/gopher-lua v1.1.0 // indirect
428437
github.com/yusufpapurcu/wmi v1.2.3 // indirect
429438
github.com/zeebo/errs v1.3.0 // indirect
430-
go.etcd.io/bbolt v1.3.11 // indirect
431-
go.etcd.io/etcd/client/v2 v2.305.16 // indirect
432-
go.etcd.io/etcd/pkg/v3 v3.5.16 // indirect
433-
go.etcd.io/etcd/raft/v3 v3.5.16 // indirect
439+
go.etcd.io/bbolt v1.4.0 // indirect
440+
go.etcd.io/etcd/client/v2 v2.305.21 // indirect
441+
go.etcd.io/etcd/pkg/v3 v3.5.21 // indirect
442+
go.etcd.io/etcd/raft/v3 v3.5.21 // indirect
434443
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
435-
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.55.0 // indirect
444+
go.opentelemetry.io/contrib/detectors/gcp v1.34.0 // indirect
445+
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 // indirect
436446
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect
437-
go.opentelemetry.io/otel/metric v1.34.0 // indirect
438-
go.opentelemetry.io/proto/otlp v1.3.1 // indirect
447+
go.opentelemetry.io/otel/metric v1.35.0 // indirect
448+
go.opentelemetry.io/otel/sdk/metric v1.34.0 // indirect
449+
go.opentelemetry.io/proto/otlp v1.5.0 // indirect
439450
go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect
440451
go.uber.org/atomic v1.10.0 // indirect
441452
go.uber.org/multierr v1.11.0 // indirect
442453
go.uber.org/zap v1.27.0 // indirect
443454
golang.org/x/arch v0.10.0 // indirect
444-
golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect
445-
golang.org/x/mod v0.22.0 // indirect
446-
golang.org/x/oauth2 v0.27.0 // indirect
447-
golang.org/x/sys v0.30.0 // indirect
448-
golang.org/x/term v0.29.0 // indirect
449-
golang.org/x/text v0.22.0 // indirect
450-
golang.org/x/time v0.6.0 // indirect
451-
golang.org/x/tools v0.29.0 // indirect
455+
golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0 // indirect
456+
golang.org/x/mod v0.24.0 // indirect
457+
golang.org/x/oauth2 v0.28.0 // indirect
458+
golang.org/x/sys v0.32.0 // indirect
459+
golang.org/x/term v0.31.0 // indirect
460+
golang.org/x/text v0.24.0 // indirect
461+
golang.org/x/time v0.11.0 // indirect
462+
golang.org/x/tools v0.32.0 // indirect
452463
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
453-
google.golang.org/api v0.196.0 // indirect
454-
google.golang.org/genproto v0.0.0-20240924160255-9d4c2d233b61 // indirect
464+
google.golang.org/api v0.227.0 // indirect
465+
google.golang.org/genproto v0.0.0-20250409194420-de1ac958c67a // indirect
455466
google.golang.org/grpc/examples v0.0.0-20230224211313-3775f633ce20 // indirect
456467
gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect
457468
gopkg.in/couchbase/gocb.v1 v1.6.7 // indirect
@@ -467,16 +478,16 @@ require (
467478
gopkg.in/ini.v1 v1.67.0 // indirect
468479
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
469480
gopkg.in/yaml.v2 v2.4.0 // indirect
470-
k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70 // indirect
481+
k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7 // indirect
471482
k8s.io/klog/v2 v2.130.1 // indirect
472-
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
483+
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
473484
modernc.org/libc v1.61.9 // indirect
474485
modernc.org/mathutil v1.7.1 // indirect
475486
modernc.org/memory v1.8.2 // indirect
476-
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
487+
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
477488
sigs.k8s.io/kustomize/api v0.15.0 // indirect
478489
sigs.k8s.io/kustomize/kyaml v0.15.0 // indirect
479-
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
490+
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
480491
stathat.com/c/consistent v1.0.0 // indirect
481492
)
482493

0 commit comments

Comments
 (0)