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