drill-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DRILL-5269) SYSTEM ERROR: JsonMappingException: No suitable constructor found for type [simple type, class org.apache.drill.exec.store.direct.DirectSubScan]
Date Thu, 07 Sep 2017 22:25:00 GMT

    [ https://issues.apache.org/jira/browse/DRILL-5269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16157773#comment-16157773
] 

ASF GitHub Bot commented on DRILL-5269:
---------------------------------------

Github user vrozov commented on a diff in the pull request:

    https://github.com/apache/drill/pull/926#discussion_r137658224
  
    --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/store/RecordReader.java ---
    @@ -26,6 +26,9 @@
     import org.apache.drill.exec.record.MaterializedField;
     import org.apache.drill.exec.vector.ValueVector;
     
    +import com.fasterxml.jackson.annotation.JsonTypeInfo;
    +
    +@JsonTypeInfo(use=JsonTypeInfo.Id.NAME, include=JsonTypeInfo.As.WRAPPER_OBJECT, property="type")
    --- End diff --
    
    AFAIK, it will not impact implementations of the `RecordReader` interface. The annotation
affects Jackson type inference when a physical operator has a reference to a `RecordReader`
and Jackson needs to construct a concrete implementation of the `RecordReader`. Such information
needs to be passed in any case and the annotation specifies JSON syntax used to pass the type
information. To avoid the concern I'll move the annotation to the field declaration in `DirectSubScan`.
The effect of such move is that it will be necessary to annotate `RecordReader` in every operator
that may be passed as part of a fragment to a remote node for execution.  


> SYSTEM ERROR: JsonMappingException: No suitable constructor found for type [simple type,
class org.apache.drill.exec.store.direct.DirectSubScan]
> ------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DRILL-5269
>                 URL: https://issues.apache.org/jira/browse/DRILL-5269
>             Project: Apache Drill
>          Issue Type: Bug
>    Affects Versions: 1.9.0
>            Reporter: Anas
>            Assignee: Vlad Rozov
>            Priority: Critical
>         Attachments: tc_sm_parquet.tar.gz
>
>
> I am a query that has nested joins. The query fails with the following exception.
> {code}
> SYSTEM ERROR: JsonMappingException: No suitable constructor found for type [simple type,
class org.apache.drill.exec.store.direct.DirectSubScan]: can not instantiate from JSON object
(missing default constructor or creator, or perhaps need to add/enable type information?)
>  at [Source: {
>   "pop" : "broadcast-sender",
>   "@id" : 0,
>   "receiver-major-fragment" : 1,
>   "child" : {
>     "pop" : "selection-vector-remover",
>     "@id" : 1,
>     "child" : {
>       "pop" : "filter",
>       "@id" : 2,
>       "child" : {
>         "pop" : "project",
>         "@id" : 3,
>         "exprs" : [ {
>           "ref" : "`__measure__10`",
>           "expr" : "`count`"
>         } ],
>         "child" : {
>           "pop" : "DirectSubScan",
>           "@id" : 4,
>           "initialAllocation" : 1000000,
>           "maxAllocation" : 10000000000,
>           "reader" : [ {
>             "count" : 633
>           } ],
>           "cost" : 0.0
>         },
>         "initialAllocation" : 1000000,
>         "maxAllocation" : 10000000000,
>         "cost" : 20.0
>       },
>       "expr" : "greater_than(`__measure__10`, 0) ",
>       "initialAllocation" : 1000000,
>       "maxAllocation" : 10000000000,
>       "cost" : 10.0
>     },
>     "initialAllocation" : 1000000,
>     "maxAllocation" : 10000000000,
>     "cost" : 10.0
>   },
>   "destinations" : [ {
>     "minorFragmentId" : 0,
>     "endpoint" : "Cg0xOTIuMTY4LjAuMTAwEKLyARij8gEgpPIB"
>   }, {
>     "minorFragmentId" : 1,
>     "endpoint" : "Cg0xOTIuMTY4LjAuMTAwEKLyARij8gEgpPIB"
>   } ],
>   "initialAllocation" : 1000000,
>   "maxAllocation" : 10000000000,
>   "cost" : 10.0
> }; line: 20, column: 11] (through reference chain: org.apache.drill.exec.physical.config.BroadcastSender["child"]->org.apache.drill.exec.physical.config.SelectionVectorRemover["child"]->org.apache.drill.exec.physical.config.Filter["child"]->org.apache.drill.exec.physical.config.Project["child"])
> Fragment 3:0
> [Error Id: 9fb4ef4a-f118-4625-94f5-56c96dc7bdb4 on 192.168.0.100:31010]
>   (com.fasterxml.jackson.databind.JsonMappingException) No suitable constructor found
for type [simple type, class org.apache.drill.exec.store.direct.DirectSubScan]: can not instantiate
from JSON object (missing default constructor or creator, or perhaps need to add/enable type
information?)
>  at [Source: {
>   "pop" : "broadcast-sender",
>   "@id" : 0,
>   "receiver-major-fragment" : 1,
>   "child" : {
>     "pop" : "selection-vector-remover",
>     "@id" : 1,
>     "child" : {
>       "pop" : "filter",
>       "@id" : 2,
>       "child" : {
>         "pop" : "project",
>         "@id" : 3,
>         "exprs" : [ {
>           "ref" : "`__measure__10`",
>           "expr" : "`count`"
>         } ],
>         "child" : {
>           "pop" : "DirectSubScan",
>           "@id" : 4,
>           "initialAllocation" : 1000000,
>           "maxAllocation" : 10000000000,
>           "reader" : [ {
>             "count" : 633
>           } ],
>           "cost" : 0.0
>         },
>         "initialAllocation" : 1000000,
>         "maxAllocation" : 10000000000,
>         "cost" : 20.0
>       },
>       "expr" : "greater_than(`__measure__10`, 0) ",
>       "initialAllocation" : 1000000,
>       "maxAllocation" : 10000000000,
>       "cost" : 10.0
>     },
>     "initialAllocation" : 1000000,
>     "maxAllocation" : 10000000000,
>     "cost" : 10.0
>   },
>   "destinations" : [ {
>     "minorFragmentId" : 0,
>     "endpoint" : "Cg0xOTIuMTY4LjAuMTAwEKLyARij8gEgpPIB"
>   }, {
>     "minorFragmentId" : 1,
>     "endpoint" : "Cg0xOTIuMTY4LjAuMTAwEKLyARij8gEgpPIB"
>   } ],
>   "initialAllocation" : 1000000,
>   "maxAllocation" : 10000000000,
>   "cost" : 10.0
> }; line: 20, column: 11] (through reference chain: org.apache.drill.exec.physical.config.BroadcastSender["child"]->org.apache.drill.exec.physical.config.SelectionVectorRemover["child"]->org.apache.drill.exec.physical.config.Filter["child"]->org.apache.drill.exec.physical.config.Project["child"])
>     com.fasterxml.jackson.databind.JsonMappingException.from():216
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault():1130
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject():298
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId():1094
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther():166
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize():135
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId():120
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject():91
>     com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType():142
>     com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize():488
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping():465
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased():380
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault():1123
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject():298
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId():1094
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther():166
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize():135
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId():120
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject():91
>     com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType():142
>     com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize():488
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping():465
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased():380
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault():1123
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject():298
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId():1094
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther():166
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize():135
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId():120
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject():91
>     com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType():142
>     com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize():488
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping():465
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased():380
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault():1123
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject():298
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId():1094
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther():166
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize():135
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId():120
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject():91
>     com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType():142
>     com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize():488
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping():465
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased():380
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault():1123
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject():298
>     com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId():1094
>     com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther():166
>     com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize():135
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId():120
>     com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject():91
>     com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType():142
>     com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize():42
>     com.fasterxml.jackson.databind.ObjectReader._bindAndClose():1575
>     com.fasterxml.jackson.databind.ObjectReader.readValue():1200
>     org.apache.drill.exec.planner.PhysicalPlanReader.readFragmentOperator():94
>     org.apache.drill.exec.work.fragment.FragmentExecutor.run():203
>     org.apache.drill.common.SelfCleaningRunnable.run():38
>     java.util.concurrent.ThreadPoolExecutor.runWorker():1142
>     java.util.concurrent.ThreadPoolExecutor$Worker.run():617
>     java.lang.Thread.run():745
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message