imbajin commented on code in PR #3313:
URL: https://github.com/apache/hugegraph/pull/3313#discussion_r4245000640


##########
hugegraph-store/hg-store-client/src/main/java/org/apache/hugegraph/store/client/grpc/KvPageScanner.java:
##########
@@ -319,6 +321,13 @@ public void onError(Throwable t) {
             } catch (Exception e) {
                 log.warn("failed to invoke requestObserver.onCompleted(), 
reason:", e.getMessage());
             }
+            // Retire the failed pool before publishing the original iterator 
error,
+            // so immediate retries cannot reuse it. Cancellation or protocol 
errors
+            // must not evict healthy nodes, and stale notices preserve 
replacements.
+            if (Status.fromThrowable(t).getCode() == Status.Code.UNAVAILABLE) {
+                new NotifyingExecutor(session.getGraphName(),
+                                      HgStoreNodeManager.getInstance(), 
session).handleErr(t);

Review Comment:
   Rechecked at 6c9a272561b15aa578d7f2ccf33e7bd537400ea9: this specific P1 is 
addressed in the current source.
   
   serverScan() now stops outgoing requests without closing the receive buffer, 
leaving terminal publication to the response callback after retirement and 
error storage. I independently reran the bounded Java extraction model against 
both control flows: the earlier version returned false EOF during blocked 
retirement, while the updated version kept the consumer waiting and then 
delivered the original UNAVAILABLE after retirement. The new 
testReceiverEnteringDuringRetirementDoesNotSeeEof regression covers exactly the 
missing ordering, including no additional outgoing request and retry with a new 
channel.
   
   I also checked the final-page completion-exception guard and its regression; 
it prevents a request-side completion exception from dropping the last page. 
This is independent source/model verification, not a fresh full Maven or 
deployed gRPC run. Current-head CI, coverage and the original 
deployment-recovery acceptance remain separate; no earlier green result is 
inherited. The previous 7/10 assessment and P1 finding apply to the earlier 
revision, not this repaired head.



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

Reply via email to