Skip to content

Commit aa0cfa9

Browse files
authored
Add extra protection against accessing null fields to 8.5 migration (#1921)
1 parent 59355d6 commit aa0cfa9

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

internal/pkg/dl/migration.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,9 @@ map.put("id", ctx._source.default_api_key_id);
239239
240240
// Make current API key empty, so fleet-server will generate a new one
241241
// Add current API jey to be retired
242-
ctx._source['` + fieldOutputs + `']['default'].to_retire_api_key_ids.add(map);
242+
if (ctx._source['` + fieldOutputs + `']['default'].to_retire_api_key_ids != null) {
243+
ctx._source['` + fieldOutputs + `']['default'].to_retire_api_key_ids.add(map);
244+
}
243245
ctx._source['` + fieldOutputs + `']['default'].api_key="";
244246
ctx._source['` + fieldOutputs + `']['default'].api_key_id="";
245247
ctx._source['` + fieldOutputs + `']['default'].permissions_hash=ctx._source.policy_output_permissions_hash;
@@ -258,6 +260,8 @@ ctx._source.policy_output_permissions_hash="";
258260

259261
body, err := query.MarshalJSON()
260262
if err != nil {
263+
log.Debug().Str("painlessScript", painless).
264+
Msgf("%s: failed painless script", migrationName)
261265
return migrationName, FleetAgents, nil, fmt.Errorf("could not marshal ES query: %w", err)
262266
}
263267

@@ -273,10 +277,13 @@ func migratePolicyCoordinatorIdx() (string, string, []byte, error) {
273277

274278
query := dsl.NewRoot()
275279
query.Query().MatchAll()
276-
query.Param("script", `ctx._source.coordinator_idx++;`)
280+
painless := `ctx._source.coordinator_idx++;`
281+
query.Param("script", painless)
277282

278283
body, err := query.MarshalJSON()
279284
if err != nil {
285+
log.Debug().Str("painlessScript", painless).
286+
Msgf("%s: failed painless script", migrationName)
280287
return migrationName, FleetPolicies, nil, fmt.Errorf("could not marshal ES query: %w", err)
281288
}
282289

0 commit comments

Comments
 (0)