jackjlli commented on PR #13486:
URL: https://github.com/apache/pinot/pull/13486#issuecomment-2329912019

   @Jackie-Jiang If you check the failed messages from the Github actions, it 
shows that the exception was thrown when trying to update the table config (not 
trying to list the table config), which means the API call to list table config 
has passed before attempting to update the table config:
   ```
   pinot.common.exception.HttpErrorStatusException: Got error status code: 500 
(Internal Server Error) with reason: "Failed to update TableConfigs for: 
testList1, Specified EXTERNALVIEW brokerResource is not found!"
   
   03:41:16.876 ERROR [TableConfigsRestletResource] [grizzly-http-server-7] 
Failed to update TableConfigs for: testList1, Specified EXTERNALVIEW 
brokerResource is not found!
   org.apache.helix.HelixException: Specified EXTERNALVIEW brokerResource is 
not found!
        at 
org.apache.helix.messaging.CriteriaEvaluator.getProperty(CriteriaEvaluator.java:196)
 ~[helix-core-1.4.0.jar:1.4.0]
        at 
org.apache.helix.messaging.CriteriaEvaluator.evaluateCriteria(CriteriaEvaluator.java:75)
 ~[helix-core-1.4.0.jar:1.4.0]
        at 
org.apache.helix.messaging.DefaultMessagingService.generateMessagesForParticipant(DefaultMessagingService.java:192)
 ~[helix-core-1.4.0.jar:1.4.0]
        at 
org.apache.helix.messaging.DefaultMessagingService.generateMessage(DefaultMessagingService.java:182)
 ~[helix-core-1.4.0.jar:1.4.0]
        at 
org.apache.helix.messaging.DefaultMessagingService.send(DefaultMessagingService.java:102)
 ~[helix-core-1.4.0.jar:1.4.0]
        at 
org.apache.helix.messaging.DefaultMessagingService.send(DefaultMessagingService.java:96)
 ~[helix-core-1.4.0.jar:1.4.0]
        at 
org.apache.pinot.controller.helix.core.PinotHelixResourceManager.sendTableConfigRefreshMessage(PinotHelixResourceManager.java:2750)
 ~[classes/:?]
        at 
org.apache.pinot.controller.helix.core.PinotHelixResourceManager.setExistingTableConfig(PinotHelixResourceManager.java:1962)
 ~[classes/:?]
        at 
org.apache.pinot.controller.helix.core.PinotHelixResourceManager.setExistingTableConfig(PinotHelixResourceManager.java:1931)
 ~[classes/:?]
        at 
org.apache.pinot.controller.helix.core.PinotHelixResourceManager.updateTableConfig(PinotHelixResourceManager.java:1923)
 ~[classes/:?]
        at 
org.apache.pinot.controller.api.resources.TableConfigsRestletResource.updateConfig(TableConfigsRestletResource.java:355)
 ~[classes/:?]
        at 
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
 ~[?:?]
        at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
   ```
   
   Here is the sequence of the API calls:
   ```
       TableConfigs tableConfigs = new TableConfigs(tableName1, schema, 
offlineTableConfig, null);
       sendPostRequest(_createTableConfigsUrl, 
tableConfigs.toPrettyJsonString());
   
       // list
       String getResponse = 
sendGetRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableConfigsList());
       List<String> configs = JsonUtils.stringToObject(getResponse, new 
TypeReference<List<String>>() {
       });
       Assert.assertEquals(configs.size(), 1);
       Assert.assertTrue(configs.containsAll(Sets.newHashSet(tableName1)));
   
       // update to 2
       tableConfigs = new TableConfigs(tableName1, schema, offlineTableConfig, 
realtimeTableConfig);
       
sendPutRequest(DEFAULT_INSTANCE.getControllerRequestURLBuilder().forTableConfigsUpdate(tableName1),
           tableConfigs.toPrettyJsonString());
   ```
   The evaluation logic has been there for quite a while.
   
https://github.com/apache/helix/blame/master/helix-core/src/main/java/org/apache/helix/messaging/CriteriaEvaluator.java#L75
   and the default data source has always been EV:
   
https://github.com/apache/helix/blame/master/helix-core/src/main/java/org/apache/helix/Criteria.java#L68
   
   So I guess in the later release, something has changed in a way that makes 
EV to be populated much later compared to the previous release. Adding @zpinto 
@MarkGaox here for more context on this?


-- 
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