File tree Expand file tree Collapse file tree 2 files changed +29
-8
lines changed Expand file tree Collapse file tree 2 files changed +29
-8
lines changed Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ This update includes bug fixes:
4
4
5
5
- [ Fix degradation of Workflow runtime performance over time] ( #fix-degradation-of-workflow-runtime-performance-over-time )
6
6
- [ Allow Service Account for MetalBear mirrord operator in sidecar injector] ( #allow-service-account-for-metalbear-mirrord-operator-in-sidecar-injector )
7
+ - [ Prevent panic of reminder operations on slow Actor Startup] ( #prevent-panic-of-reminder-operations-on-slow-actor-startup )
7
8
8
9
## Fix degradation of Workflow runtime performance over time
9
10
@@ -41,4 +42,22 @@ Mirrord Operator is not on the allow list of Service Accounts for the dapr sidec
41
42
42
43
### Solution
43
44
44
- Add the Mirrord Operator into the allow list of Service Accounts for the dapr sidecar injector.
45
+ Add the Mirrord Operator into the allow list of Service Accounts for the dapr sidecar injector.
46
+
47
+ ## Prevent panic of reminder operations on slow Actor Startup
48
+
49
+ ### Problem
50
+
51
+ The Dapr runtime HTTP server would panic if a reminder operation timed out while an Actor was starting up.
52
+
53
+ ### Impact
54
+
55
+ The HTTP server would panic, causing degraded performance.
56
+
57
+ ### Root cause
58
+
59
+ The Dapr runtime would attempt to use the reminder service before it was initialized.
60
+
61
+ ### Solution
62
+
63
+ Correctly return an errors that the actor runtime was not ready in time for the reminder operation.
Original file line number Diff line number Diff line change @@ -193,12 +193,10 @@ func (a *actors) Init(opts InitOptions) error {
193
193
194
194
storeEnabled := a .buildStateStore (opts , apiLevel )
195
195
196
- if a .reminderStore != nil {
197
- a .reminders = reminders .New (reminders.Options {
198
- Storage : a .reminderStore ,
199
- Table : a .table ,
200
- })
201
- }
196
+ a .reminders = reminders .New (reminders.Options {
197
+ Storage : a .reminderStore ,
198
+ Table : a .table ,
199
+ })
202
200
203
201
var err error
204
202
a .placement , err = placement .New (placement.Options {
@@ -357,6 +355,10 @@ func (a *actors) Reminders(ctx context.Context) (reminders.Interface, error) {
357
355
return nil , err
358
356
}
359
357
358
+ if a .reminders == nil {
359
+ return nil , messages .ErrActorRuntimeNotFound
360
+ }
361
+
360
362
return a .reminders , nil
361
363
}
362
364
@@ -374,7 +376,7 @@ func (a *actors) waitForReady(ctx context.Context) error {
374
376
}
375
377
return nil
376
378
case <- ctx .Done ():
377
- return ctx . Err ()
379
+ return messages . ErrActorRuntimeNotFound
378
380
}
379
381
}
380
382
You can’t perform that action at this time.
0 commit comments