-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Manual client refresh required after FlightRuntimeException with FlightStatusCode.UNAVAILABLE due to ConnectTimeoutException #129
Comments
Hi @mps2209, Thank you for using our client and for bringing this issue to our attention. The client should be designed to recover from a To assist in diagnosing the problem effectively, do you know any specific steps that could help us easily replicate this behavior? Best Regards |
Thank you for giving our issue attention. Regrettably I cant really provide anymore information, except that we have multiple services, and when it happens, it happens to several of them. We just had it happen again, so sadly the fix on our side did not work. We are currently investigating and I will update if we find out anything. |
Hi @mps2209 I'm trying to recreate this issue. I've managed to get a stack trace with the first six lines you've included above, however instead of a Thanks |
This is the most I can extract from our logs:
I hope this helps |
Hi @mps2209, Unfortunately, we are unable to replicate the issue you described in our testing environment. Our client successfully recovers from network exceptions as expected, which suggests there might be specific factors in your setup influencing the behavior you're encountering. To help us understand and potentially solve the problem, could you provide more details about your implementation? Specifically:
If possible, please include code snippets or a broader description of your architecture, as these details will be crucial in diagnosing the issue more effectively. Thank you for your cooperation, and looking forward to your response. Best regards |
Im not sure what you mean with reactor, but we used to
And query influx like this:
We have now changed this to circumvent the timeout error and instead of the @bean we implemented a Proxy/Factory and are calling the refresh client method of the proxy, in the catch block from above.
Hope this helps! |
@mps2209, Thanks for providing detailed information. To further understand the context and possibly identify any compatibility or configuration issues, could you let us know which version of Spring you are using? Additionally, are you using Spring Boot in your project? |
@bednar yes we are using spring boot, here are the relevant entries in our pom.xml:
|
Small update from our side. We have encountered the mentioned exception again, but our fix to refresh the client once we catch an exception seems to have worked. We had an error on all of our stages,but some stages showed a different exception. I can't guarantuee that these exceptions would have led to the same behaviour, as our fix seems to work now. But I will share the stacktrace anyway, maybe it helps:
The second new exception looked like this:
Hope this helps! Thank you! |
@mps2209 thanks for update! |
Specifications
Code sample to reproduce problem
Its hard to reproduce the error, because we do not know why the exception is thrown in the first place. We suspect that some configuration change on influx side, causes the client to run into the timeout exception.
This was our setup:
We initialize our client as a bean and inject it into our services.
But sometimes something goes wrong an this exception is thrown. Then it was the case, that the client got stuck in this error state and threw this exception with each request.
The client works again after restarting the service.
Expected behavior
We expect not having to create a new client for every request. We load-tested this approach and it was noticeably slower. Therefore, we initialize the client only once, at startup of our service.
Actual behavior
Once the exception from the code example is thrown due to some change on influx side, the client gets stuck in this error mode. We had to implement a proxy/factory that creates a new client when this exception is thrown. We are unsure what is the intended way of using the client. To create a new client for every request, as the code example in the readme shows, seems not feasible:
try (InfluxDBClient client = InfluxDBClient.getInstance(host, token, database))
Additional info
No response
The text was updated successfully, but these errors were encountered: