ericpai commented on a change in pull request #4571:
URL: https://github.com/apache/iotdb/pull/4571#discussion_r769455628
##########
File path:
cluster/src/main/java/org/apache/iotdb/cluster/query/aggregate/ClusterAggregator.java
##########
@@ -244,12 +244,16 @@ public ClusterAggregator(MetaGroupMember metaGroupMember)
{
results);
return results;
}
- } catch (TException | IOException e) {
+ } catch (TException e) {
+ logger.error(
+ metaGroupMember.getName() + " query aggregation error " + path + "
from " + node, e);
+ throw new StorageEngineException(e.getMessage());
Review comment:
> > the retrying to other nodes only happends when there're timeout
exception.
>
> Agree with you.
>
> However, I recorded that if a timeout occurs in an RPC call, TException is
still thrown, and the new implementation is still not the way we want it to be.
Do you have any ideas on this? Or we could refer to existing
[implementations](https://github.com/apache/iotdb/blob/master/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java#L1377),
but I'm not sure whether just specifying `socketTimeoutException` is enough.
Maybe we can check whether it's a TApplicationiException first, and then
TException? A TApplicationException usally means there's some application error
in the server side, the request-response is not timeout.
I have found another picture about the exception tree in Thrift.

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