spring-cloud / spring-cloud/spring-cloud-gateway

Reproducible Leak under load when request is timed out.

Open
#810 32 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Java
Stars
4.9k
Forks
3.5k
Avg merge
20h 57m
Merged PRs (30d)
8

Description

This is being tested under Greenwhich snapshot and Californium Snapshot.

I am testing this on PCF using SSL. Under load the gateway leaks memory when the response-timeout setting is used and a request surpasses the timeout.

The setup is as follows.

  1. Multiple get and posts are being made to the gateway via Gatling.
  2. The gateway is setup to terminate requests that take longer than 7500 milliseconds (setting response-timeout). One request takes 7500 milliseconds so it will be terminated by the gateway.

After some amount of time the gateway will eventually leak memory.

Everything you need is available in this repot

The Gatling script uses version 2.3.1. You can download it here

You will have to tweak this to enable SSL or just deploy to PCF where SSL is turned on by default. In addition you will just need to configure the url in the application.yml along with the url in the Gatling Script.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked scg-leak reproduction, its application.yml, and the Gatling 2.3.1 script. Run the GET and POST load test with response-timeout set to 7500 milliseconds, using SSL or PCF as described, and observe whether gateway memory grows after timed-out requests. Done means the leak is reproduced and the timeout handling no longer causes sustained memory growth.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring, spring-boot
Domain
api, backend, performance
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.