apache / apache/druid

Could not resolve type id 'LongLastAggregatorFactory$1' into a subtype of AggregatorFactory

Open
#7,599 5 comments 0 reactions 0 assignees View on GitHub
Area - Batch Ingestion Area - Streaming Ingestion Contributions Welcome Feature/Change Description Starter
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.