mneedham opened a new issue #7856:
URL: https://github.com/apache/pinot/issues/7856


   Given the following setup:
   
   hybrid_schema.json
   ```json
   {
       "schemaName": "transcript",
       "dimensionFieldSpecs": [
           {
               "name": "studentID",
               "dataType": "INT"
           },
           {
               "name": "firstName",
               "dataType": "STRING"
           },
           {
               "name": "lastName",
               "dataType": "STRING"
           },
           {
               "name": "gender",
               "dataType": "STRING"
           },
           {
               "name": "subject",
               "dataType": "STRING"
           },
           {
               "name": "doNotFailPlease",
               "dataType": "STRING",
               "defaultNullValue": ""
           },
           {
               "name": "ts2",
               "dataType": "TIMESTAMP"
           }
       ],
       "metricFieldSpecs": [
           {
               "name": "score",
               "dataType": "FLOAT"
           }
       ],
       "dateTimeFieldSpecs": [
           {
               "name": "ts",
               "dataType": "TIMESTAMP",
               "format": "1:SECONDS:EPOCH",
               "granularity": "1:SECONDS"
           }
       ],
       "primaryKeyColumns": [
           "studentID"
       ]
   }
   ```
   
   2. hybrid_offline.json
   ```json
   {
       "tableName": "transcript_hybrid",
       "tableType": "OFFLINE",
       "segmentsConfig": {
           "replication": 1,
           "timeColumnName": "ts",
           "timeType": "SECONDS"
       },
       "tenants": {
           "broker": "DefaultTenant",
           "server": "DefaultTenant"
       },
       "tableIndexConfig": {
           "loadMode": "MMAP"
       },
       "metadata": {}
   ```
   
   3. hybrid_realtime.json
   ```json
   {
       "tableName": "transcript_hybrid",
       "tableType": "REALTIME",
       "segmentsConfig": {
           "timeColumnName": "ts",
           "timeType": "SECONDS",
           "schemaName": "transcript",
           "replicasPerPartition": "1"
       },
       "tenants": {},
       "tableIndexConfig": {
           "loadMode": "MMAP",
           "streamConfigs": {
               "streamType": "kafka",
               "stream.kafka.consumer.type": "lowlevel",
               "stream.kafka.topic.name": "transcript",
               "stream.kafka.decoder.class.name": 
"org.apache.pinot.plugin.stream.kafka.KafkaJSONMessageDecoder",
               "stream.kafka.consumer.factory.class.name": 
"org.apache.pinot.plugin.stream.kafka20.KafkaConsumerFactory",
               "stream.kafka.broker.list": 
"kafka.local-pinot.svc.cluster.local:9092",
               "realtime.segment.flush.threshold.time": "6h"
           }
       },
       "metadata": {
           "customConfigs": {}
       },
       "routing": {
           "instanceSelectorType": "strictReplicaGroup"
       },
       "upsertConfig": {
           "mode": "FULL"
       }
   }
   ```
   
   We see this error in the logs:
   
   ```
   "HELIX_ERROR     20211202-132039.000850 STATE_TRANSITION 
8c6c680c-f89a-450f-b9c9-a4464d517617": {
         "AdditionalInfo": "Exception while executing a state transition task 
transcript_hybrid_REALTIMEjava.lang.reflect.InvocationTargetException\n\tat 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)\n\tat 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n\tat
 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n\tat
 java.base/java.lang.reflect.Method.invoke(Method.java:566)\n\tat 
org.apache.helix.messaging.handling.HelixStateTransitionHandler.invoke(HelixStateTransitionHandler.java:404)\n\tat
 
org.apache.helix.messaging.handling.HelixStateTransitionHandler.handleMessage(HelixStateTransitionHandler.java:331)\n\tat
 org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:97)\n\tat 
org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:49)\n\tat 
java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)\n\tat 
java.base/java.uti
 l.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)\n\tat 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)\n\tat
 java.base/java.lang.Thread.run(Thread.java:829)\nCaused by: 
java.lang.IllegalStateException: Failed to find schema for table: 
transcript_hybrid_OFFLINE\n\tat 
shaded.com.google.common.base.Preconditions.checkState(Preconditions.java:518)\n\tat
 
org.apache.pinot.broker.routing.timeboundary.TimeBoundaryManager.<init>(TimeBoundaryManager.java:74)\n\tat
 
org.apache.pinot.broker.routing.RoutingManager.buildRouting(RoutingManager.java:371)\n\tat
 
org.apache.pinot.broker.broker.helix.BrokerResourceOnlineOfflineStateModelFactory$BrokerResourceOnlineOfflineStateModel.onBecomeOnlineFromOffline(BrokerResourceOnlineOfflineStateModelFactory.java:80)\n\t...
 12 more\n",
         "Class": "class 
org.apache.helix.messaging.handling.HelixStateTransitionHandler",
         "MSG_ID": "5173dca5-b009-46cd-b6be-15e57b3a5b01",
         "Message state": "READ"
       }
   ```
   
   It seems like the TimeBoundaryManager assumes that the schema name is the 
table name - 
https://github.com/apache/pinot/blob/master/pinot-broker/src/main/java/org/apache/pinot/broker/routing/timeboundary/TimeBoundaryManager.java#L74


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to