Skip to content
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

FLOW_CONTROL_ERROR when loading many files on one page #1641

Closed
const-t opened this issue Jun 17, 2022 · 1 comment
Closed

FLOW_CONTROL_ERROR when loading many files on one page #1641

const-t opened this issue Jun 17, 2022 · 1 comment

Comments

@const-t
Copy link
Contributor

const-t commented Jun 17, 2022

Scope

FLOW_CONTROL_ERROR appears when client sends multiple requests in one connection.

It can be reproduced in Chromium and nghttp2.
nghttp2: To reproduce this issue we need to make html file with links to something in it and run the nghttp2 with -a argument.
Run: nghttp -anvy https://debian/file.html

file.html example:

<!DOCTYPE html>
<html>
<body>
	<h1>TEST PAGE</h1>
	<img src="1.png"/>
	<img src="2.png"/>
	<img src="3.png"/>
	<img src="4.png"/>
</body>
</html>

All images must present. Image 1.png must be largest(above 1MB) image, other images can be smaller(100 KB or less). If all files have same size images loads correctly.

Also same error appear if we use large amount of images in one page. For example we can place into file.html 30 images and nghttp will sent frame GO_AWAY error_code=FLOW_CONTROL_ERROR even if all files are same.

File with large amount of images:

<!DOCTYPE html>
<html>
<body>
	<h1>TEST PAGE</h1>
	<img src="1.png"/>
	<img src="2.png"/>
	<img src="3.png"/>
	<img src="4.png"/>
	<img src="4.png?rnd=0"/>
	<img src="4.png?rnd=1"/>
	<img src="4.png?rnd=2"/>
	<img src="4.png?rnd=3"/>
	<img src="4.png?rnd=4"/>
	<! -- And so on. Better to use large amount of img -->
</body>
</html>

Chromium: In this case we can use mixed approach: file.html must contain many(30+) images with first large image. Request to largest image will be failed.

Testing

For testing need to use library which correctly works with http2 multiplexing.

@const-t
Copy link
Contributor Author

const-t commented Jun 23, 2022

This issue duplicated by #1394 and should be considered as test case.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants