Skip to content

Commit afada29

Browse files
authored
Apply workaround for known issue to logsdb test data generation (#113214) (#113305)
(cherry picked from commit 5a15771) # Conflicts: # muted-tests.yml
1 parent 00b32d8 commit afada29

File tree

4 files changed

+16
-7
lines changed

4 files changed

+16
-7
lines changed

test/framework/src/main/java/org/elasticsearch/logsdb/datageneration/datasource/DataSourceRequest.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,12 @@ public DataSourceResponse.ObjectArrayGenerator accept(DataSourceHandler handler)
104104
}
105105
}
106106

107-
record LeafMappingParametersGenerator(String fieldName, FieldType fieldType, Set<String> eligibleCopyToFields)
108-
implements
109-
DataSourceRequest<DataSourceResponse.LeafMappingParametersGenerator> {
107+
record LeafMappingParametersGenerator(
108+
String fieldName,
109+
FieldType fieldType,
110+
Set<String> eligibleCopyToFields,
111+
DynamicMapping dynamicMapping
112+
) implements DataSourceRequest<DataSourceResponse.LeafMappingParametersGenerator> {
110113
public DataSourceResponse.LeafMappingParametersGenerator accept(DataSourceHandler handler) {
111114
return handler.handle(this);
112115
}

test/framework/src/main/java/org/elasticsearch/logsdb/datageneration/datasource/DefaultMappingParametersHandler.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
package org.elasticsearch.logsdb.datageneration.datasource;
1111

1212
import org.elasticsearch.index.mapper.Mapper;
13+
import org.elasticsearch.logsdb.datageneration.fields.DynamicMapping;
1314
import org.elasticsearch.test.ESTestCase;
1415

1516
import java.util.HashMap;
@@ -48,7 +49,11 @@ private Supplier<Map<String, Object>> keywordMapping(
4849
// We only add copy_to to keywords because we get into trouble with numeric fields that are copied to dynamic fields.
4950
// If first copied value is numeric, dynamic field is created with numeric field type and then copy of text values fail.
5051
// Actual value being copied does not influence the core logic of copy_to anyway.
51-
if (ESTestCase.randomDouble() <= 0.05) {
52+
//
53+
// TODO
54+
// We don't use copy_to on fields that are inside an object with dynamic: strict
55+
// because we'll hit https://github.com/elastic/elasticsearch/issues/113049.
56+
if (request.dynamicMapping() != DynamicMapping.FORBIDDEN && ESTestCase.randomDouble() <= 0.05) {
5257
var options = request.eligibleCopyToFields()
5358
.stream()
5459
.filter(f -> f.equals(request.fieldName()) == false)

test/framework/src/main/java/org/elasticsearch/logsdb/datageneration/fields/GenericSubObjectFieldDataGenerator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ List<ChildField> generateChildFields(DynamicMapping dynamicMapping) {
6262
new DataSourceRequest.LeafMappingParametersGenerator(
6363
fieldName,
6464
fieldTypeInfo.fieldType(),
65-
context.getEligibleCopyToDestinations()
65+
context.getEligibleCopyToDestinations(),
66+
dynamicMapping
6667
)
6768
);
6869
var generator = fieldTypeInfo.fieldType()

test/framework/src/main/java/org/elasticsearch/logsdb/datageneration/fields/PredefinedField.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public interface PredefinedField {
2121

2222
FieldDataGenerator generator(DataSource dataSource);
2323

24-
record WithType(String fieldName, FieldType fieldType) implements PredefinedField {
24+
record WithType(String fieldName, FieldType fieldType, DynamicMapping dynamicMapping) implements PredefinedField {
2525
@Override
2626
public String name() {
2727
return fieldName;
@@ -31,7 +31,7 @@ public String name() {
3131
public FieldDataGenerator generator(DataSource dataSource) {
3232
// copy_to currently not supported for predefined fields, use WithGenerator if needed
3333
var mappingParametersGenerator = dataSource.get(
34-
new DataSourceRequest.LeafMappingParametersGenerator(fieldName, fieldType, Set.of())
34+
new DataSourceRequest.LeafMappingParametersGenerator(fieldName, fieldType, Set.of(), dynamicMapping)
3535
);
3636
return fieldType().generator(fieldName, dataSource, mappingParametersGenerator);
3737
}

0 commit comments

Comments
 (0)