https://github.com/danielfernandez/test-boot-netty-windows
Test repository for issues with Spring Boot + Netty on Windows
https://github.com/danielfernandez/test-boot-netty-windows
Last synced: about 1 year ago
JSON representation
Test repository for issues with Spring Boot + Netty on Windows
- Host: GitHub
- URL: https://github.com/danielfernandez/test-boot-netty-windows
- Owner: danielfernandez
- Created: 2017-01-06T00:26:24.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-01-07T10:17:04.000Z (over 9 years ago)
- Last Synced: 2025-01-30T19:49:05.898Z (over 1 year ago)
- Language: Shell
- Size: 49.8 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.markdown
Awesome Lists containing this project
README
Test repository for Spring Web Reactive + Netty hanging while returning JSON in Windows
---------------------------------------------------------------------------------------
Issue Links:
* https://jira.spring.io/browse/SPR-15108
This repository is aimed at testing how Netty hangs while trying to return amounts of
JSON greater than 2 Kilobytes in a Spring Boot 2.0 + Spring 5 Web Reactive application,
running on **Windows**.
## How to test
This application uses Spring Boot 2.0 snapshot, and was created using http://start.spring.io with
the *Reactive Web* module enabled.
To compile and run:
```
$ mvn -U clean compile spring-boot:run
```
The application offers a `/list/{size}` URL which returns a JSON array of very simple data items. These
items actually come from a `Flux` object returned by the controller, and are created at the
`EntityRepository` class from a `List` and then repeated the amount of times specified at the URL.
In order to call it, e.g. with `size = 20`:
```
$ curl http://localhost:8080/list/20
```
## Observed Results
Note this has to be tested on Windows. Specifically, **Windows 10** has been used for these tests. This
works OK in other operating systems.
When the total amount of JSON to be transmitted is below 2 KBytes, it works OK:
```
$ curl http://localhost:8080/list/41 > out
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1969 0 1969 0 0 63516 0 --:--:-- --:--:-- --:--:-- 128k
```
But when we increase the size, it simply hangs:
```
$ curl http://localhost:8080/list/50 > out1
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2017 0 2017 0 0 13 0 --:--:-- 0:02:28 --:--:-- 0
^C (Interrupted)
```