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
I'm running an application that gets request from clients, do some work to prepare data and then makes a call to Argo API to submit a job.
The thing is that recently, trying to find the maximum load we can assume in our servers, we started calling our application once per second for an extended time. And we found that exactly after 1h, Argo rejects our calls with a GOAWAY status (we couldn't get more headers or information about that)
Further investigation revealed the problem was that the HttpClient java library we're using keeps the underlying connection opened up to 30s waiting for another call to reuse that connection before closing it. And as that never happened, the connection was kept forever until Argo (I guess) rejected it for being too old/long. We fixed it forcing the creation of a new connection every time a new call is needed.
So my questions are: Why is that happening? Is it a good practice? Why one hour? Is it configurable in some way?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
I'm running an application that gets request from clients, do some work to prepare data and then makes a call to Argo API to submit a job.
The thing is that recently, trying to find the maximum load we can assume in our servers, we started calling our application once per second for an extended time. And we found that exactly after 1h, Argo rejects our calls with a GOAWAY status (we couldn't get more headers or information about that)
Further investigation revealed the problem was that the HttpClient java library we're using keeps the underlying connection opened up to 30s waiting for another call to reuse that connection before closing it. And as that never happened, the connection was kept forever until Argo (I guess) rejected it for being too old/long. We fixed it forcing the creation of a new connection every time a new call is needed.
So my questions are: Why is that happening? Is it a good practice? Why one hour? Is it configurable in some way?
Thank you in advanced!
Beta Was this translation helpful? Give feedback.
All reactions