Skip to content

Commit f97237f

Browse files
authored
Handle get namespace by id error (#4559)
1 parent 5e03077 commit f97237f

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

service/history/queues/executable.go

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -177,27 +177,25 @@ func (e *executableImpl) Execute() (retErr error) {
177177
e.Unlock()
178178
return nil
179179
}
180-
181-
ns, _ := e.namespaceRegistry.GetNamespaceByID(namespace.ID(e.GetNamespaceID()))
180+
var namespaceName string
181+
ns, err := e.namespaceRegistry.GetNamespaceByID(namespace.ID(e.GetNamespaceID()))
182+
if err == nil {
183+
namespaceName = ns.Name().String()
184+
}
182185
var callerInfo headers.CallerInfo
183186
switch e.priority {
184187
case ctasks.PriorityHigh:
185-
callerInfo = headers.NewBackgroundCallerInfo(ns.Name().String())
188+
callerInfo = headers.NewBackgroundCallerInfo(namespaceName)
186189
default:
187190
// priority low or unknown
188-
callerInfo = headers.NewPreemptableCallerInfo(ns.Name().String())
191+
callerInfo = headers.NewPreemptableCallerInfo(namespaceName)
189192
}
190193
ctx := headers.SetCallerInfo(
191194
metrics.AddMetricsContext(context.Background()),
192195
callerInfo,
193196
)
194197
e.Unlock()
195198

196-
if !ns.IsOnCluster(e.clusterMetadata.GetCurrentClusterName()) {
197-
// Discard task if the namespace is not on the current cluster.
198-
return consts.ErrTaskDiscarded
199-
}
200-
201199
defer func() {
202200
if panicObj := recover(); panicObj != nil {
203201
err, ok := panicObj.(error)
@@ -234,6 +232,12 @@ func (e *executableImpl) Execute() (retErr error) {
234232
// Not doing it here as for certain errors latency for the attempt should not be counted
235233
}()
236234

235+
if ns != nil && !ns.IsOnCluster(e.clusterMetadata.GetCurrentClusterName()) {
236+
// Discard task if the namespace is not on the current cluster.
237+
e.taggedMetricsHandler = e.metricsHandler.WithTags(e.estimateTaskMetricTag()...)
238+
return consts.ErrTaskDiscarded
239+
}
240+
237241
metricsTags, isActive, err := e.executor.Execute(ctx, e)
238242
e.taggedMetricsHandler = e.metricsHandler.WithTags(metricsTags...)
239243

service/history/queues/executable_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,7 @@ func (s *executableSuite) TestExecute_DiscardTask() {
280280
Clusters: []string{"nonCurrentCluster"},
281281
}, 1)
282282

283-
registry.EXPECT().GetNamespaceByID(gomock.Any()).Return(ns, nil)
283+
registry.EXPECT().GetNamespaceByID(gomock.Any()).Return(ns, nil).Times(2)
284284
s.ErrorIs(executable.Execute(), consts.ErrTaskDiscarded)
285285
}
286286

0 commit comments

Comments
 (0)