Could not resolve type id 'LongLastAggregatorFactory$1' into a subtype of AggregatorFactory
- Dominant language
- Java
- Stars
- 14.1k
- Forks
- 3.8k
- Avg merge
- 2d 58m
- Merged PRs (30d)
- 233
Description
In the latest 0.14 version, where I define the metric as follows: {"type":"longLast","name":"lonlat","fieldName":"lonlat"};I receive a warning as shown below
org.apache.druid.segment.IndexIO - Failed to load metadata for segment [/data/druid/task/index_kafka_courier_position_aeb8afe30127b32_aifpnlal/work/persist/courier_position_2019-05-06T06:00:00.000Z_2019-05-06T07:00:00.000Z_2019-05-06T05:56:41.188Z_2/2]
com.fasterxml.jackson.databind.JsonMappingException: Could not resolve type id 'LongLastAggregatorFactory$1' into a subtype of [simple type, class org.apache.druid.query.aggregation.AggregatorFactory]: known type ids = [AggregatorFactory, cardinality, count, doubleFirst, doubleLast, doubleMax, doubleMin, doubleSum, filtered, floatFirst, floatLast, floatMax, floatMin, floatSum, histogram, hyperUnique, javascript, longFirst, longLast, longMax, longMin, longSum, stringFirst, stringFirstFold, stringLast, stringLastFold]
at [Source: [B@2b89a823; line: 1, column: 33] (through reference chain: org.apache.druid.segment.Metadata["aggregators"]->Object[][0])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.DeserializationContext.unknownTypeException(DeserializationContext.java:967) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._handleUnknownTypeId(TypeDeserializerBase.java:277) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:159) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:108) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:93) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:131) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:158) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:17) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:520) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:463) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:378) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1099) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:296) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:133) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3736) ~[jackson-databind-2.6.7.jar:2.6.7]
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2819) ~[jackson-databind-2.6.7.jar:2.6.7]
at org.apache.druid.segment.IndexIO$V9IndexLoader.load(IndexIO.java:564) [druid-processing-0.14.0-incubating-iap1.jar:0.14.0-incubating-iap1]
at org.apache.druid.segment.IndexIO.loadIndex(IndexIO.java:188) [druid-processing-0.14.0-incubating-iap1.jar:0.14.0-incubating-iap1]
at org.apache.druid.segment.realtime.appenderator.AppenderatorImpl.persistHydrant(AppenderatorImpl.java:1274) [druid-server-0.14.0-incubating-iap1.jar:0.14.0-incubating-iap1]
at org.apache.druid.segment.realtime.appenderator.AppenderatorImpl.access$100(AppenderatorImpl.java:110) [druid-server-0.14.0-incubating-iap1.jar:0.14.0-incubating-iap1]
at org.apache.druid.segment.realtime.appenderator.AppenderatorImpl$2.doCall(AppenderatorImpl.java:534) [druid-server-0.14.0-incubating-iap1.jar:0.14.0-incubating-iap1]
at org.apache.druid.common.guava.ThreadRenamingCallable.call(ThreadRenamingCallable.java:44) [druid-core-0.14.0-incubating-iap1.jar:0.14.0-incubating-iap1]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_65]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
Contributor guide
Research direction
Start with IndexIO$V9IndexLoader and AppenderatorImpl, then inspect how the longLast metric is serialized and resolved through AggregatorFactory. Reproduce the configuration from the report and verify that persisted segment metadata reloads without the unknown LongLastAggregatorFactory$1 type-id warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100