You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We need to implement a retry interceptor for streaming calls in the Java SDK, based on the investigation conducted in this ticket. During the investigation, it was found that the same RetryInterceptor logic used for unary calls could be applied to streaming calls as well.
However, testing this implementation against Momento Local revealed an issue. After a retry is triggered, the program hangs when performing scalar or batch operations. This indicates that the behavior of Momento Local differs from that of the actual server, potentially leading to the hang.
Next Steps:
To resolve this issue, we need to collaborate with a backend engineer to set up a development environment (dev cell) where we can simulate a "SERVER_UNAVAILABLE" error locally. This will allow us to test the retry logic under conditions that better mimic the actual server behavior, ensuring the retry mechanism functions correctly for both scalar and batch operations.
Action Items:
[x] Coordinate with a backend engineer to configure the dev cell for simulating the "SERVER_UNAVAILABLE" error.
[x] Re-test the RetryInterceptor logic with the new setup to verify if the issue persists.
[x] Ensure that both scalar and batch operations are handled correctly during retries without causing the program to hang.
This will help isolate whether the discrepancy between Momento Local and the actual server is contributing to the issue and enable us to refine the retry logic accordingly.
Code References:
For details on how testing against momento-local was done, check this PR: #394 [WIP-POC]
The text was updated successfully, but these errors were encountered:
During testing on my development environment (developer-rishti-dev), I simulated server-side errors (5XX) to examine the behavior of both unary and streaming calls under realistic service conditions, rather than using momento-local. The investigation revealed the following:
Proper Program Exit: The program exits without hanging when cacheClient.close() is explicitly called. This indicates that certain resources remain open if cacheClient is not closed, suggesting that the RetryInterceptor is keeping resources active.
Retry Success: I successfully retried streaming calls (e.g., getBatch) using the existing RetryInterceptor, confirming its effectiveness for both unary and streaming calls.
Conclusions:
Consistency Across Environments: momento-local and the actual service perform identically, confirming that there are no issues with the momento-local implementation.
Versatility of RetryInterceptor: The current RetryInterceptor, initially designed for unary calls, can also effectively handle retries for streaming calls.
Issue Description:
We need to implement a retry interceptor for streaming calls in the Java SDK, based on the investigation conducted in this ticket. During the investigation, it was found that the same RetryInterceptor logic used for unary calls could be applied to streaming calls as well.
However, testing this implementation against Momento Local revealed an issue. After a retry is triggered, the program hangs when performing scalar or batch operations. This indicates that the behavior of Momento Local differs from that of the actual server, potentially leading to the hang.
Next Steps:
To resolve this issue, we need to collaborate with a backend engineer to set up a development environment (dev cell) where we can simulate a "SERVER_UNAVAILABLE" error locally. This will allow us to test the retry logic under conditions that better mimic the actual server behavior, ensuring the retry mechanism functions correctly for both scalar and batch operations.
Action Items:
[x] Coordinate with a backend engineer to configure the dev cell for simulating the "SERVER_UNAVAILABLE" error.
[x] Re-test the RetryInterceptor logic with the new setup to verify if the issue persists.
[x] Ensure that both scalar and batch operations are handled correctly during retries without causing the program to hang.
This will help isolate whether the discrepancy between Momento Local and the actual server is contributing to the issue and enable us to refine the retry logic accordingly.
Code References:
For details on how testing against momento-local was done, check this PR: #394 [WIP-POC]
The text was updated successfully, but these errors were encountered: