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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]