HTTP keepalive connections from edgemicro to target?

Not applicable

Hello, is there an edgemicro configuration that can be used to enable HTTP 1.1 keepalive connections between edgemicro and the target?

In recent testing we noticed 20,000+ sockets in the TIME_WAIT state, which has been caused by edgemicro using a new socket connection for every single API request to our target HTTP server (which supports KeepAlive).

1 10 475
10 REPLIES 10

Not applicable

This seems to be a change in behavior between 2.0.12 and 2.1.2. 2.0.12 is issuing HTTP keepalive requests, 2.1.2 is not.

Is there a new setting in 2.1.2 that needs to be configured, or is this a regression?

Hey David,

We've identified the regression, and have got a fix ready for this issue. Stay tuned for a release that will be dropped this week.

-Matt

Hey David,

One small update. We'll actually be pushing the release out to no later than next Friday (December 2).

-Matt

Will the fix be made available in the 2.1.x release series?

It was going to be released in a 2.4.x series. We can try and working something out if that won't work for your use case.

-Matt

A beta of the 2.4 series hasn't been published yet so we haven't had a chance to do any of our own testing with that. Where can we see the release notes for that version to gauge what additional testing we might need to do. E.g. a change to the 2.3.x series requires the user running the edgemicro process to have write access to the CWD (for the new edgemicro.sock file).

What is the Apigee policy for fixing regressions? 2.1.x is the latest published version of edgemicro. We've done all our testing on 2.0.12, and just recently upgraded to the latest non-beta version and found this regression

2.2 and 2.3 never made it out of beta, and now it looks like we're jumping all the way to 2.4.

Is there likely to be an LTS policy for edgemicro since it will be installed and deployed on-premise, where rapid upgrades can be a challenge?

Former Community Member
Not applicable

@David Teirney

Great question. May I please request you to post this as a new question (since it is a new thread/question)?

Hey David,

We believe this is a regression. We've got a fix in the pipeline that should solve this. Stay tuned for the next edgemicro release where this is will be fixed.

-Matt

Hi @Matthew Dobson, I just load tested https://github.com/apigee-internal/microgateway/tree/stress-testing as part of some work with @Mitchell Fierro. That branch should have the fix applied and I'm still not seeing the connections being reused between edgemicro and the target. Apache logging suggests that the request is a candidate for being kept alive but edgemicro still appears to be creating a new connection for each subsequent API request.